目前正在创建一些东西,我正处于插入鼠标动画的位置。我最初是通过jQuery开始这样做的,但是过了一会儿,我认为用CSS做这件事很容易。最后,它只是一个悬停动画。
那时,我想知道:"我可以做jQuery悬停动画(mouseenter(); mouseleave()),以及CSS:hover ..使用上的区别在哪里?"
这就是我的问题。
我唯一能想到的情况是,当鼠标离开时,悬停在项目上的状态应该与原始状态不同。比如已经看过'功能。 即。
Regular: opacity:80;
:hover opacity:100;
mouseleave opacity:10.
谁可以给出答案?
谢谢!
答案 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)
mouseover
和mouseout
是可以由jQuery处理的DOM鼠标事件。 jQuery还有一个可以修改元素样式的方法 - 即jQuery.css()
。这很明显。
当然,在您的情况下,CSS :hover
更有效,更简单。
鼠标事件和jQuery.css()
的组合只是jQuery用法的一个特定情况,其评估与CSS :hover
相同的行为。与 square 相同是矩形的特定情况。