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 相关文章推荐
javascript 关于# 和 void的区别分析
Oct 26 Javascript
javascript数组克隆简单实现方法
Dec 16 Javascript
jQuery实现带水平滑杆的焦点图动画插件
Mar 08 Javascript
AngularJS基础 ng-csp 指令详解
Aug 01 Javascript
原生js开发的日历插件
Feb 04 Javascript
angular使用post、get向后台传参的问题实例
May 27 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
Jan 18 Javascript
js实现多个倒计时并行 js拼团倒计时
Feb 25 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
Jul 03 jQuery
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
在nuxt中使用路由重定向的实例
Nov 06 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添加MySQL数据记录代码
2008/06/07 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
jQuery示例收集
2010/11/05 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python读取各种文件数据方法解析
2018/12/29 Python
浅谈Python中的字符串
2020/06/10 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
美国在线印刷公司:PsPrint
2017/10/12 全球购物
工作自荐信
2013/12/11 职场文书
大型车展策划方案
2014/02/01 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
找规律教学反思
2016/02/23 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python