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 相关文章推荐
HTA版JSMin(省略修饰语若干)基于javascript语言编写
Dec 24 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
Aug 14 Javascript
利用jquery写的左右轮播图特效
Feb 12 Javascript
JavaScript里四舍五入函数round用法实例
Apr 06 Javascript
ExtJs动态生成treepanel的Json格式
Jul 19 Javascript
基于jQuery实现多层次的手风琴效果附源码
Sep 21 Javascript
JS+HTML5 FileReader对象用法示例
Apr 07 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
Vue2.0 实现移动端图片上传功能
May 30 Javascript
webpack css加载和图片加载的方法示例
Sep 11 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 Javascript
原生js拖拽功能制作滑动条实例代码
Feb 05 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
PHP读取XML值的代码(推荐)
2011/01/01 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
IE下js调试工具Companion.JS
2010/10/15 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
小学生保护环境倡议书
2014/05/15 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
政风行风评议整改方案
2014/09/15 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers