jquery hover 不停闪动问题的解决方法(亦为stop()的使用)


Posted in Javascript onFebruary 10, 2017

在前端开发中用的较多的是jquery,之前遇到一个问题,一个下拉的jquery下拉菜单效果,hover上去,一直闪动,用mouseovermouseout好好的,当时没搞定,今天逛论坛看到一个方法,可以行.只怪自己之前看jquery api的时候不是很仔细。

解决闪动 可以使用Stop()

stop([clearQueue],[jumpToEnd])

概述

停止所有在指定元素上正在运行的动画。

如果队列中有等待执行的动画(并且clearQueue没有设为true),他们将被马上执行

参数

[clearQueue],[gotoEnd] Boolean,BooleanV1.2clearQueue:如果设置成true,则清空队列。可以立即结束动画。

gotoEnd: 让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等。

[queue],[clearQueue],[jumpToEnd]BooleanV1.7queue:用来停止动画的队列名称

clearQueue: 如果设置成true,则清空队列。可以立即结束动画。

jumpToEnd: 如果设置成true,则完成队列。可以立即完成动画。

当鼠标移上去的时候就菜单下拉,当鼠标离开的时候菜单上卷,下拉和上卷的动画时间都是5秒种。

$("#menu").hover( 
    function () { 
      $("#menu").animate({ height: "500" }, 5000); 
    }, 
    function () { 
      $("#menu").animate({ height: "100" }, 5000); 
    } 
);

如果我快速不断地将鼠标移入移出菜单(即,当菜单下拉动画未完成时,鼠标又移出了菜单)就会产生“动画积累”,当鼠标停止移动后,积累的动画还会持续执行,直到动画序列执行完毕。这样导致动画效果与鼠标动作不一致。

要解决此问题只需要在移入移出动画之前加入stop(),结束当前动画进入下个动画即可。

代码如下:

$("#menu").hover( 
    function () { 
      $("#menu").stop().animate({ height: "500" }, 5000); 
    }, 
    function () { 
      $("#menu").stop().animate({ height: "100" }, 5000); 
    } 
);

如果需到组合动画,在移入移出动画之前加入stop()来停止当前动画,如下

$("#menu").hover( 
    function () { 
      $("#menu").stop().animate({ height: "500" }, 5000).animate({ width: "500px" }, 3000); 
    }, 
    function () { 
      $("#menu").stop().animate({ height: "100" }, 5000).animate({ width: "100px" },3000); 
    } 
);

效果并不好,因为stop()只是停止了当前第一步的动画(即{height:”500″}),然后又进入了第二步的动画(即[width:”500″})。

此时stop()的第一个参数就派上了用场,它会把下面没有执行的动画序列都清空掉。

$("#menu").hover( 
    function () { 
      $("#menu").stop(true).animate({ height: "500" }, 5000).animate({ width: "500px" }, 5000); 
    }, 
    function () { 
      $("#menu").stop(true).animate({ height: "100" }, 5000).animate({ width: "100px" },5000); 
    } 
);

当然也可以使用第二个参数,让动画达到最后状态。如:stop(false,true)

以上这篇jquery hover 不停闪动问题的解决方法(亦为stop()的使用)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
用Mootools获得操作索引的两种方法分享
Dec 12 Javascript
js展开闭合效果演示代码
Jul 24 Javascript
js数组的基本操作(很全自己整理的)
Oct 16 Javascript
jquery隔行换色效果实现方法
Jan 15 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
如何获取元素的最终background-color
Feb 06 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
Angular2中监听数据更新的方法
Aug 31 Javascript
微信小程序mpvue点击按钮获取button值的方法
May 29 Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 09 Javascript
JS验证不重复验证码
Feb 10 #Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 #Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
Feb 10 #Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 #Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 #Javascript
Bootstrap轮播图学习使用
Feb 10 #Javascript
微信小程序模板之分页滑动栏
Feb 10 #Javascript
You might like
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
PHP排序算法类实例
2015/06/17 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
简单实现jQuery轮播效果
2017/08/18 jQuery
浅谈React碰到v-if
2018/11/04 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
Python使用新浪微博API发送微博的例子
2014/04/10 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
python微信公众号之关键词自动回复
2018/06/15 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
.NET常见笔试题集
2012/12/01 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
创立科技Java面试题
2015/11/29 面试题
个人作风剖析材料
2014/02/02 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
质量管理标语
2014/06/12 职场文书
员工离职证明范本
2015/06/12 职场文书
python数字图像处理:图像简单滤波
2022/06/28 Python