关于Jquery动画滞后问题(转)

jQuery中slideUp 、slideDown、animate等动画运用时,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,其表现不雅。非常影响使用体验。

之前在开发中也遇到过这样的问题。没有记录的习惯,导致时隔很久忘了这个常见bug的解决办法。现在找到了必须记录下来。

bug效果图:

原始代码:

    $(function(){
            $(".box").hover(
                function(){
                    $("ul").slideDown(300);
                },
                function(){
                    $("ul").slideUp(300);
                }
            );
        });    

解决思路:

在触发元素的事件时预先停止所有的动画,再执行相应的动画事件(使用stop函数)。

解决后代码:

        $(function(){
            $(".box").hover(
                function(){
                    $("ul").stop().slideDown(300);
                },
                function(){
                    $("ul").stop().slideUp(300);
                }
            );
        });

用jquery的链式调用,在元素执行动画前就清掉所有动画效果。

解决后效果图:

无论触发多少次,都只会执行一次动画。

时间: 2024-10-06 09:37:11

关于Jquery动画滞后问题(转)的相关文章

Unit02: jQuery事件处理 、 jQuery动画

Unit02: jQuery事件处理 . jQuery动画 jQuery实现购物车案例 <!DOCTYPE html> <html> <head> <title>购物车</title> <meta charset="utf-8" /> <style type="text/css"> h1 { text-align:center; } table { margin:0 auto; wi

深入学习jQuery动画控制

× 目录 [1]动画状态 [2]停止动画 [3]动画延迟[4]全局控制 前面的话 jQuery动画可以使用fade.hide.slide等方法实现基本动画效果,可以使用animate实现自定义动画,甚至可以使用queue实现动画队列.但是,却缺少了对动画控制的介绍.动画产生后,描述动画状态.进行动画延迟.操作动画暂停等都是很重要的功能.本文将详细介绍jQuery动画控制 动画状态 当用户快速在某个元素多次执行动画时,会造成动画累积的现象.这时,就需要引入动画状态这个概念.判断元素是否处于动画状态

jQuery动画animate方法使用介绍

jQuery动画animate方法使用介绍 用于创建自定义动画的函数. 返回值:jQuery animate(params, [duration], [easing], [callback]) 如果使用的是“hide”.“show”或“toggle”这样的字符串值,则会为该属性调用默认的动画形式.paramsOptions一组包 含作为动画属性和终值的样式属性和及其值的集合 params 对象{},注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left,如果使用

深入学习jQuery动画队列

前面的话 队列实现是jQuery非常棒的一个拓展,使用动画队列可以使动画更容易实现.本文将详细介绍jQuery动画队列 queue() queue()方法用来显示在匹配的元素上的已经执行的函数队列 queue([queueName]) queue()方法可以接受一个可选参数——一个含有队列名的字符串.该参数默认是'fx' <script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script&

有时候就是看不进论文-jQuery动画特效篇&amp;MySQL

hi 早上知道新的乱斗模式后,没忍住开了几把,然后就无心论文了...用这个来破吧 1.jQuery -----动画特效----- ----调用show()和hide()方法显示和隐藏元素 show()和hide()方法用于显示或隐藏页面中的元素,它的调用格式分别为: $(selector).hide(speed,[callback])和$(selector).show(speed,[callback]) 参数speed设置隐藏或显示时的速度值,可为“slow”.“fast”或毫秒数值,可选项参数

JQuery 动画及一些小知识点

JQuery  动画 show(),hide()显示/隐藏slideDown(),slideUp() 拉开/合起fadeIn(),fadeOut()渐出/渐入自定义动画 animate({left:"300px",top:"300px"//样式变化},3000//变化时间,function(){回调函数,是在前面样式变化执行完之后才执行的写在这里面,前面是同时执行的}) 停止动画,防止动画积累: .stop(true) 点击文字防止文字被选中的方法: * { -mo

jQuery自学笔记(三):jQuery动画效果

jQuery隐藏和显示: 使用 hide( ) 和 show( ) 方法来隐藏和显示 HTML 元素: 语法: $(selector).hide(speed,callback); $(selector).show(speed,callback); 可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"."fast" 或毫秒,可选的 callback 参数是隐藏或显示完成后所执行的函数名称. 一个关于调用callback函数的实例: $("

JQuery动画详解(四)

一:基本动画show()显示隐藏的匹配元素.这个就是 'show( speed, [callback] )' 无动画的版本.如果选择的元素是可见的,这个方法将不会改变任何东西.无论这个元素是通过hide()方法隐藏的还是在CSS里设置了display:none;,这个方法都将有效.返回值jQuery示例显示所有段落 HTML 代码:<p style="display: none">Hello</p> jQuery 代码:$("p").show

分享JQuery动画插件Velocity.js的六种列表加载特效

分享JQuery动画插件Velocity.js的六种列表加载特效.在这款实例中给中六种不同的列表加载效果.分别为从上飞入.从右侧飞入.从左侧飞入.和渐显.一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <h1> Velocity.js <i>slice + sequence</i></h1> <pre>Only anim X number with FX#1, animate Y number with FX#2 etc