使用hover()快速移动鼠标获取对象css属性时会出现不准确的现象, 怎么解决?

使用hover函数让display:none的对象slideDown出来,并获取对象的height值,console.log出来,结果如图。如果正常速率移动鼠标的话,能够... 使用hover函数让display:none的对象slideDown出来,并获取对象的height值, console.log出来, 结果如图。
如果正常速率移动鼠标的话, 能够正确读取出80 和 60,
但如果移动鼠标较快,则无法准确读取。
通过查看元素可以看到当鼠标移动到该元素上时, 其height值会有个由0快速变化至80的过程, 如果规避这种现象呢? 谢谢解答~~
展开
 我来答
iFonHen
2016-09-04 · TA获得超过132个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:97.4万
展开全部

经测试没有出现以所描述的问题!

你可以检查一下,你是不是你绑定hover的对象上绑定了其它动画.


我测试的代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<title>test</title>
<script src="./public/jquery/jquery-1.12.min.js" type="text/javascript"></script>
<script>
$(function(){

$('li').hover(function(){
console.info($(this).height());
});

});
</script>
</head>
<body>
<li>00000000000000000000000000000000000000</li><li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li><li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
<li>00000000000000000000000000000000000000</li>
</body>
</html>
更多追问追答
追问
恩 忘了补充了,  是display:none  并 绑定了 slideDown 然后去读取高度。
追答
slideDown 是动画,他的高度是在一个时间段里递增的.所有才会出现上面的问题.
如果你是想在动画完成后执行hover里的代码,可以使用一个 setTimeout来执行.
或者,先停止动画并显示元素,输出高度后,再重新执行动画.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式