Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery mouseenter()在哪一点上优于CSS<>;:悬停_Jquery_Css_Hover_Jquery Hover - Fatal编程技术网

Jquery mouseenter()在哪一点上优于CSS<>;:悬停

Jquery mouseenter()在哪一点上优于CSS<>;:悬停,jquery,css,hover,jquery-hover,Jquery,Css,Hover,Jquery Hover,目前正在创建一些东西,我正在插入鼠标动画。我最初是通过jQuery开始做这件事的,但过了一分钟,我想用CSS做这件事会很容易。最后,它只是一个悬停动画 当时,我在想:“我可以制作jQuery悬停动画(mouseenter();mouseleave()),也可以使用CSS:hover..用法上的区别在哪里?” 这就是我的问题 我唯一能想到的是当鼠标离开时,悬停在项目上的状态应该与原始状态不同。例如“已经看到”功能。 i、 e 谁能回答这个问题 谢谢 当我投票以基于意见的方式结束时,我建议当悬停项应

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

当时,我在想:“我可以制作jQuery悬停动画(mouseenter();mouseleave()),也可以使用CSS:hover..用法上的区别在哪里?”

这就是我的问题

我唯一能想到的是当鼠标离开时,悬停在项目上的状态应该与原始状态不同。例如“已经看到”功能。 i、 e

谁能回答这个问题


谢谢

当我投票以基于意见的方式结束时,我建议当悬停项应该影响祖先元素的同级元素或悬停项的前一同级元素的更改时,需要使用JavaScript


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

它相对简单:如果需要执行CSS无法解决的操作,请使用JS

这些行动可以是:

  • 阿贾克斯

  • 计算

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

这张单子可以永远延续下去


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

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

mouseover
mouseout
是可以由jQuery处理的DOM鼠标事件。jQuery还有一个可以修改元素样式的方法,即
jQuery.css()
。这是显而易见的

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


鼠标事件和
jQuery.css()
的组合只是jQuery使用的一种特殊情况,其计算结果与css
:hover
的行为相同。与正方形相同的是矩形的一种特殊情况。

此外,除了它的简单性之外,CSS还受到大多数web浏览器的良好支持,并且总是(理论上)启用CSS。另一方面,可以禁用Javascript。因此,在我看来,他应该尽可能地使用CSS。@AlejandroIván,好吧,在主流浏览器(大多数CSS3)中,CSS支持有一些例外情况,jQuery应该在这些例外情况下完成这项工作。不过,我完全同意你的说法,因为你说支持率很高,而不是100%。
Regular: opacity:80;
:hover opacity:100;
mouseleave opacity:10.