`

jquery之stop()的用法

 
阅读更多

目的:为了 了解stop()的用法,举个例子,直观的方式看看。

实物:一个id="animater"的div包含了一段文字。(以下用animator表示实物)

 

动画最终的完整效果: animater向右移动800px(这个完整的过程是动画1),然后,字体逐渐变大(这个完整的过程是动画2),然后,透明度逐渐降低到0(这个完整的过程是动画3),然后透明度逐渐恢复到1(这个完整的过程是动画4),然后字体大小变为16px同时移动到距离左边界200px的位置(这个完整的过程是动画5).

<div id="animater">
    stop()方法测试
</div>

<div id="button">
    <input type="button" id="button1" value="stop()"/>
    <input type="button" id="button2" value="stop(true)"/>
    <input type="button" id="button3" value="stop(false,true)"/>
    <input type="button" id="button4" value="stop(true,true)"/>
    
</div>

 

#animater{
    width: 150px;
    background:activeborder;
    border: 1px solid black;
    /*为了移动,需设置此属性*/
    position: relative;
}

 

// 为了看效果,随意写的动画
$('#animater').animate({
    'right':-800
}, 3000).animate({'font-size':'16px'},'normal').animate({'font-size':'26px'},'normal').animate({'font-size':'36px'},'normal').animate({'font-size':'46px'},'normal').animate({'font-size':'56px'},'normal').animate({'opacity':0},'normal').animate({'opacity':1},'normal').animate({'left':200,'font-size':'16px'},'normal');

// 点击不同的button执行不同的操作

$('#button1').click(function(){
    //默认参数是false,不管写一个false还是两个false还是没写false效果一样
    $('#animater').stop();
});
$('#button2').click(function(){
    //第二个参数默认false
    $('#animater').stop(true);
});
$('#button3').click(function(){
    $('#animater').stop(false,true);
});
$('#button4').click(function(){
    $('#animater').stop(true,true);
});

 W3School上是这样的说明的:

stop(stopAll,goToEnd)

参数 描述
stopAll 可选。规定是否停止被选元素的所有加入队列的动画。
goToEnd

可选。规定是否允许完成当前的动画。

该参数只能在设置了 stopAll 参数时使用。

 

我的理解:

 

stopAll 为false时,不停止被选元素所有加入队列的动画,仅停止当前的动画。stopAll为true时,停止所有加入队列的动画(如goToend为true,直接跳到当前动画的最终效果)。

goToend为false时,不允许直接跳到当前动画的最终效果(应该就是所谓的完成当前的动画吧),goToend为true时,允许直接跳到完成当前动画的最终末尾效果

 

 

每次运行页面,animater运动时,点击不同button,看到如下不同的效果(animater处在动画1时点击):

点击按钮button1(stop()),由于两个参数都是false。所以点击发生时,animater没有跳到当前动画(动画1)的最终效果,而直接进入动画2,然后动画3,4,5.直至完成整个动画。

点击按钮button1(stop(true)),由于第一个是true,第二个是false,所以animater立刻全部停止了,动画不动了。

点击按钮button1(stop(false,true)),由于第一个是false,第二个是true,所以点击发生时,animater身处的当前动画(动画1)停止并且animater直接跳到当前动画(动画1)的最终末尾效果位置,接着正常执行下面的动画(动画2,3,4,5),直至完成整个动画。

点击按钮button1(stop(true,true)),由于两个都是true,所以点击发生时,animater跳到当前动画(动画1)的最终末尾效果位置,然后,全部动画停止。

 

 

工作中遇到过的实际案例:

 

我在项目里做的一个下拉菜单,当鼠标移上去的时候就菜单显示,当鼠标离开的时候菜单隐藏

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

 

解决方法:在写动画效果的代码前加入stop(true,true),这样每次快速的移入移出菜单,就正常了,当移入一个菜单的时候,停止所有加入队列的动画,但是完成当前的动画(跳至当前动画的最终效果位置)

 

 

 

 

 

 

分享到:
评论

相关推荐

    JQuery动画animate的stop方法使用详解

    在示例代码中,有三个按钮,分别对应三种stop方法的不同用法: 1. `$('.wrap div').stop();` 这个调用将停止当前动画,元素会在当前位置停止移动。如果在返回过程中再次点击,动画会暂停在当前的位置。 2. `$('....

    jquery jmp3 使用例子

    下面将详细介绍jQuery jmp3的使用方法、核心功能以及如何在实际项目中应用。 首先,为了使用jQuery jmp3,你需要确保已经在项目中引入了jQuery库。可以通过CDN链接或者下载本地文件来引入,例如: ```html ...

    jQuery stop()用法实例详解

    `jQuery.stop()` 是一个用于控制 jQuery 动画执行的关键函数,它允许你在动画序列中进行干预,以实现更复杂的交互效果。在这个实例中,我们将深入理解 `stop()` 的不同参数和它们的影响。 `jQuery.stop()` 的语法是...

    jquery.event.drag jquery拖动插件

    三、使用方法 1. **引入依赖**:首先,确保引入jQuery库和`jquery.event.drag.js`插件文件。 2. **初始化插件**:对需要拖动的元素应用`.eventDrag()`方法,可以设置选项,如: ```javascript $('.draggable-...

    jquery.marquee.js官方下载

    本篇文章将详细介绍jQuery Marquee的使用方法、功能特性以及相关知识点。 一、jQuery Marquee基本介绍 jQuery Marquee是基于流行的JavaScript库jQuery的一款插件,它提供了一种简单的方式来实现元素的自动滚动效果...

    JQuery拖拽使用文档

    要使一个元素成为可拖动元素,你需要使用 `.draggable()` 方法并传入配置对象。例如: ```javascript $(obj).draggable({ revert: true, // 控制拖动结束后元素是否回退到原始位置 helper: 'clone', // 创建克隆...

    最新JQuery类库 -- JQuery1.4

    - 动画效果的控制更精细,如`stop()`方法可以停止当前运行的所有动画,而`finish()`则会立即完成所有动画。 7. **Ajax增强**: - 提供了`$.ajaxPrefilter()`和`$.ajaxTransport()`,使得开发者可以自定义Ajax请求...

    jqueryslider js 滑块

    本篇将深入探讨jQuery Slider的原理、使用方法以及如何自定义和优化其功能。 ### 1. jQuery Slider基础 jQuery Slider主要由两部分组成:HTML结构和JavaScript代码。HTML结构通常包括一个容器元素和若干个滑块项,...

    jQuery.spin.js自定义页面加载Loading动画代码

    在网页开发中,用户体验是至关重要的,特别是在处理大量数据或者执行长时间操作时,为了...通过理解其基本使用方法和配置选项,开发者可以轻松地将这个插件融入到自己的项目中,为用户呈现流畅且具有反馈感的交互体验。

    jquery滑动

    2. **jQuery动画**:学习`.slideUp()`, `.slideDown()`, `.slideToggle()`等动画方法的使用,它们接受速度参数,可以控制动画的执行速度。 3. **Sequence.js插件**:熟悉Sequence.js的API,包括如何初始化插件、...

    Jquery 1.4开发文档

    它详细列出了所有可用的方法、函数、选择器及其用法,帮助开发者快速理解和应用jQuery。通过查阅这个文档,开发者可以更好地掌握jQuery的每个功能,提高开发效率。 总的来说,jQuery 1.4版本提供了强大的DOM操作、...

    理解jQuery stop()方法

    首先,我们需要了解什么是jQuery。jQuery是一个快速、小巧、功能丰富的JavaScript库。...开发者使用jQuery可以使网页的...对于前端开发人员来说,理解并熟练使用stop()方法是提升页面交互效果和用户体验的重要技能之一。

    jquery特效菜单--透明度切换

    5. **优化性能**:使用`.stop()`方法防止连续快速移动鼠标时的动画堆积。`fadeTo()`函数中的第一个参数是动画时间,第二个参数是目标透明度。 在压缩包中的"jquery特效菜单(三)-透明度切换_已备份"可能包含了实现...

    jquery网页静止自动执行jquery.timers

    本篇文章将详细介绍`jQuery Timers`及其使用方法。 `jQuery Timers`插件的核心功能是提供了一种方式,使得JavaScript的计时器(如`setTimeout`和`setInterval`)在浏览器的后台模式下依然有效。这在处理需要实时...

    jquery 插件jquery 插件jquery 插件jquery 插件

    - 扩展jQuery对象:使用`$.fn.extend({})`来添加新的方法到jQuery实例上,这些方法可以在任何选择器匹配的元素集合上使用。 2. **插件结构** - `init`函数:这是插件的主要初始化部分,一般在选择器调用插件时...

    jquery + prototype框架

    3. **Observation**: Prototype的`Event.observe()`方法用于事件监听,而`Event.stop()`可以停止事件冒泡。 4. **Ajax`: Prototype的`Ajax.Request`和`Ajax.Updater`类用于发起异步请求,更新页面内容。 5. **...

    jQuery计时器插件jQueryTimer

    **jQuery Timer插件详解** jQuery Timer是一款非常实用的JavaScript库,专为在HTML元素中添加启动、停止、恢复和移除...通过理解其基本使用方法和配置选项,你可以轻松地将其整合到你的项目中,提升用户的交互体验。

    JQUERY开发的marquee插件

    下面我们将深入探讨这款插件的核心功能和使用方法。 1. **安装与引入** 在使用jQuery Marquee插件前,需要先确保页面已经引入了jQuery库。然后可以通过CDN链接或者本地文件引入Marquee插件的JavaScript文件。例如...

    左侧导航 jquery效果

    此外,为了优化性能,我们应该遵循最佳实践,如延迟加载未显示的内容,使用事件委托来处理大量的动态元素,以及合理地使用`.stop()`防止动画堆栈积累等。 在开发过程中,可以借助jQuery插件进一步丰富功能。例如,`...

Global site tag (gtag.js) - Google Analytics