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 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
原生js操作checkbox用document.getElementById实现
Oct 12 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
Mar 05 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
Javascript中的 “&” 和 “|” 详解
Feb 02 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
详解Eslint 配置及规则说明
Sep 10 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
May 29 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 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
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
Javascript - HTML的request类
2006/07/15 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
工程开工庆典邀请函
2014/02/01 职场文书
新课培训心得体会
2014/09/03 职场文书
单位作风建设自查报告
2014/10/23 职场文书
优秀党员先进材料
2014/12/18 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
离婚协议书范文2016
2016/03/18 职场文书