鼠标指针和鼠标左键闪烁
Mouseenter and mouseleave flashing
当我进入鼠标时,框会变为可见,但即使我的鼠标停留在框上,它也会不断变亮或变暗,我做错了什么?
jQuery
geoThumb = $(".geoThumb");
geoThumb.each(function(){
$(this).mouseenter(function() {
$(".infoBox").fadeIn(500);
}).mouseleave(function(){
$(".infoBox").fadeOut(500);
});
});
在.fadeIn
和.fadeOut
之前添加.stop
。
$(".geoThumb").mouseenter(function() {
$(".infoBox").stop().fadeIn(500);
}).mouseleave(function(){
$(".infoBox").stop().fadeOut(500);
});
演示:http://jsfiddle.net/DerekL/R4F9T/
它会闪烁,因为在它之前的动画未完成时,动画会排队。为了防止这种行为,设计了.stop
,您可以使用它来清除所有排队的动画。
jQuery Docs 报价
当我们需要在mouseenter和mouseleave上为元素设置动画时,.stop()方法的有用性是显而易见的。
.mousenter和.mouseleve并不是处理查询中悬停事件的最强大方法。试着使用.haverage(),它有两个函数,第一个在鼠标进入元素时运行,另一个在鼠标离开时运行。http://api.jquery.com/hover/
您根本不需要each()
使用.hover()
(在这种特定情况下)
使用.stop()
清除每个新事件上以前的动画构建
使用.fadeToggle()
(与.haverage()组合使用)
geoThumb = $(".geoThumb");
geoThumb.hover(function() {
$(".infoBox").stop().fadeToggle();
});
此外,我不确定您的$(".infoBox")
选择器是否足够具体,因为它是所有.infobox
元素的集合,如果您只需要动画化一个特定元素,则需要查看其他一些DOM遍历方法,如.find()
相关文章:
- Javascript拉斐尔奇怪的闪烁发生在我鼠标悬停的第三次
- 鼠标指针和鼠标左键闪烁
- 当我将鼠标悬停在iframe上时,DIV会闪烁
- jQuery-鼠标输入闪烁图像
- 更改元素父元素的背景颜色时停止在
上闪烁鼠标悬停?jQuery/JS. - 当鼠标悬停在其上时,Div 会闪烁
- 下拉导航 - 鼠标离开时菜单闪烁
- 鼠标输入/鼠标离开产生闪烁效果
- 鼠标指针在拖动事件中一直闪烁
- 鼠标输入时跨度闪烁
- jQuery弹出菜单在鼠标快速转换时闪烁
- 谷歌地图-标记在鼠标悬停前闪烁
- 鼠标经过时图像闪烁
- 鼠标悬停状态闪烁
- 鼠标闪烁,鼠标左键延迟,按钮列表
- Javascript鼠标悬停元素闪烁;未捕获的类型错误
- jQuery框fadeOut/fadeIn在鼠标离开后闪烁
- 为什么用鼠标滚轮滚动时背景会闪烁
- 鼠标悬停/鼠标离开,鼠标进入/鼠标离开,鼠标悬停闪烁问题
- jQuery闪烁鼠标Over问题