首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript高级鼠标悬停

问Javascript高级鼠标悬停
EN

Stack Overflow用户
提问于 2010-12-07 08:35:53
回答 6查看 365关注 0票数 3

有没有可能让元素中的文本颜色与背景反转?

例如:

​

所以第一个图像是正常状态。第二个是在鼠标悬停期间,最后一个是完成鼠标悬停。

编辑:我想要的背景滑出,每个字符的颜色变化为黑色块“滑动”在它后面。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-12-07 09:35:54

您可以使用CSS转换来实现这一点。这是一个example (在歌剧和Chrome上测试过)。当然,这种方法有几个缺点:

  1. 浏览器必须支持CSS transitions.
  2. It's而不是真正的倒置,你必须设置颜色manually.
  3. Extra
    1. 。

不过,第二个和第三个可以用JavaScript (计算反转颜色并替换innerHTML)来完成。

编辑:作为egarcia said in his answer,您可以使用自定义函数或jQuery对宽度属性进行动画处理,因此第一个缺点可以忽略不计。

票数 3
EN

Stack Overflow用户

发布于 2010-12-07 09:16:29

如果你可以使用额外的标记,你可以不是按字符,而是按像素。

诀窍是创建两个元素;一个将“定期”显示和“鼠标悬停/鼠标悬停”。您还需要包含这两者的内容。如下所示:

代码语言:javascript
复制
<div id='container'>
 <div id='normal' >Home</div>
 <div id='inverted' style='width:0;'>Home</div>
</div>

容器必须具有position: relative (或绝对)

比如说,normal跨度应该是黑色和白色背景,反转的应该是相反的颜色。

此外,必须绝对定位inverted div,并设置位置,使其左上角与normal重合(可能为0,0)。inverted必须具有overflow: hidden。注意html本身的显式style='width:0;'。

代码语言:javascript
复制
#container { position: relative; }
#normal {
  color: black;
  background-color: white;
}
#inversed {
  color: white;
  background-color: black;
  position: absolute;
  overflow: hidden;
  top: 0;    /* modify top/bottom if needed */
  bottom: 0;
}

现在您唯一需要做的就是编写两个函数: onmouseover和onmouseout。

  • container.Onmouseover会激活一个效果,它会逐渐增加inverted的宽度,直到它达到100%,完全覆盖normal。如果你使用jquery,你可以在一行中创建它,使用animate function.
  • container.Onmouseout会将inverted的宽度重置为0。
票数 3
EN

Stack Overflow用户

发布于 2010-12-07 08:41:58

您将只有初始状态、mouseover事件和mouseout事件

代码语言:javascript
复制
<div id="item" class="default" onmouseover="this.className='over'" onmouseout='this.className='out'"></div>

或者确保一旦你可以尝试这样做,就会发生这种情况

代码语言:javascript
复制
<div id="item" class="default" onmouseover="Over(this)" onmouseout="Out(this)">Home</div>

<script type="text/javascript">
    function Over(obj)
    { if (obj.className == "default") obj.className = "over"; }

    function Out(ojb)
    { if (obj.className == "over") obj.className = "out"; }
</script>

并且这些css类中的每一个都将具有反转样式

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4372368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档