Jquery mouseenter()在什么时候优于CSS<>:hover?

时间:2013-10-14 22:01:27

标签: jquery css hover jquery-hover

目前正在创建一些东西,我正处于插入鼠标动画的位置。我最初是通过jQuery开始这样做的,但是过了一会儿,我认为用CSS做这件事很容易。最后,它只是一个悬停动画。

那时,我想知道:"我可以做jQuery悬停动画(mouseenter(); mouseleave()),以及CSS:hover ..使用上的区别在哪里?"

这就是我的问题。

我唯一能想到的情况是,当鼠标离开时,悬停在项目上的状态应该与原始状态不同。比如已经看过'功能。 即。

Regular: opacity:80;
:hover opacity:100;
mouseleave opacity:10.

谁可以给出答案?

谢谢!

4 个答案:

答案 0 :(得分:2)

它相对简单:如果你需要做一些CSS无法解决的动作,请使用JS。

此类行动可能是:

  • AJAX

  • 计算

  • 完全更改DOM中的其他元素

  • ...

这个清单可以永远持续下去。

需要注意的一个例外是,如果要实现浏览器兼容性,可以使用JS(如果所有浏览器版本都不支持您的特定CSS属性)。

答案 1 :(得分:1)

虽然我投票以基于意见的方式结束,但我建议当hovered-item应该影响祖先元素的兄弟,或者前一个兄弟对hover-over项目的更改时,需要JavaScript。

如果用例只是暂时以不同的方式呈现悬停项目,请坚持使用CSS(它更容易,浏览器可以优化);如果意图是改变或改变其他元素,那么JavaScript(或其中一个库)是必要的。

答案 2 :(得分:1)

一般情况下,我建议在可行的情况下选择CSS解决方案,因为浏览器可能能够对其进行优化。只使用CSS / jQuery解决方案,其中CSS不可行(因为你需要做一些你不能在CSS中做的事情,因为你需要支持像IE7这样没有正确处理:hover的旧浏览器,等)。

答案 3 :(得分:1)

mouseovermouseout是可以由jQuery处理的DOM鼠标事件。 jQuery还有一个可以修改元素样式的方法 - 即jQuery.css()。这很明显。

当然,在您的情况下,CSS :hover更有效,更简单。

鼠标事件和jQuery.css()的组合只是jQuery用法的一个特定情况,其评估与CSS :hover相同的行为。与 square 相同是矩形的特定情况。