jquery stop()方法有什么用

jquery中,stop()方法用于为被选元素停止当前正在运行的动画效果,语法“$(selector).stop(stopAll,goToEnd)”;参数stopAll和goToEnd都是可选参数,其取值都是布尔值,默认值都是false。

jquery stop()方法有什么用

本教程操作环境:windows7系统、jquery1.10.2版本、Dell G3电脑。

在jquery中,stop()方法用于为被选元素停止当前正在运行的动画效果。

语法:

$(selector).stop(stopAll,goToEnd)

登录后复制

stopAll 和 goToEnd 都是可选参数,它们的取值都是布尔值,默认值都是 false。stopAll 表示停止队列动画。当取值为 false 时,仅停止当前动画;当取值为 true 时,停止当前动画以及后面所有的队列动画。goToEnd 表示将动画跳转到当前动画效果的最终状态。

其中,stop() 方法共有 4 种形式,如表 1 所示。

表 1:stop() 方法的 4 种形式 形式 说明

stop()等价于 stop(false, false),仅停止当前动画,后面的动画还可以继续执行stop(true)等价于 stop(true, false),停止当前动画,并且停止后面的动画stop(true, true)当前动画继续执行,只停止后面的动画stop(false, true)停止当前动画,跳到最后一个动画,并且执行最后一个动画

一般来说,在实际开发中我们只会用到 stop() 方法的第 1 个参数,很少用到第 2 个参数。

举例:

nbsp;html>                    div        {            width:50px;            height:50px;            background-color:lightskyblue;        }                        $(function () {            $("#btn-start").click(function () {                $("div").animate({ "width": "200px" }, 2000)                      .animate({ "background-color": "red" }, 2000)                      .animate({ "height": "200px" }, 2000)                      .animate({ "background-color": "blue" }, 2000);            });            $("#btn-stop").click(function () {                $("div").stop();            })        })            
    

登录后复制

预览效果下图所示。

1.gif

在这个例子中,我们使用 animate() 方法定义了 4 个动画。我们点击【开始】按钮后,过了一会儿如果再点击【停止】按钮,就会立即停止当前执行的动画(也就是停止当前的 animate() 方法),然后跳到下一个动画(也就是下一个 animate() 方法)。

如果再次点击【停止】按钮,它又会跳到下一个动画,以此类推。小伙伴们可以自行测试来感受一下。

如果想要停止所有的队列动画,可以通过定义 stop() 方法的第一个参数为 true 来实现,代码如下:

$("#btn-stop").click(function () {    $("div").stop(true);})

登录后复制

举例:

nbsp;html>                    div        {            width:50px;            height:50px;            background-color:lightskyblue;        }                    $(function () {            $("div").hover(function () {                $(this).animate({ "height": "150px" }, 500);            }, function () {                $(this).animate({ "height": "50px" }, 500); //移出时返回原状态            })        })        

登录后复制

预览效果下图所示。

2.gif

在这个例子中,我们使用 hover() 方法定义鼠标指针移入和鼠标指针移出时的动画效果。当我们快速地移入或移出元素时,会发现一个很奇怪的 bug:元素会不断地变长或变短!也就是说,动画会不断执行,根本停不下来。

这种“根本停不下来”的 bug 在实际开发中经常会碰到,小伙伴们一定要特别注意。实际上,这个 bug 是由动画累积所导致的。在 jQuery 中,如果一个动画没有执行完,它就会被添加到“动画队列”中去。在这个例子中,每一次移入或移出元素,都会产生一个动画,如果该动画没有被执行完,它就会被添加到动画队列中去,然后没有被执行完的动画会继续执行,直到所有动画执行完毕。

针对这个 bug,我们只需要在移入或移出元素产生的动画执行之前加入 stop() 方法,就能轻松解决。最终修改后的代码如下。

$("div").hover(function () {    $(this).stop().animate({ "height": "150px" }, 500);}, function () {    $(this).stop().animate({ "height": "50px" }, 500);    //移出时返回原状态})

登录后复制

对于这种由于动画累积产生的 bug,我们还可以通过is(“:animated”)来判断当前的动画状态并解决。对于is(“:animated”)这种方式,之后会详细介绍。

实际上,jQuery 还有一个方法可以中断动画——finish()。这个方法与 stop(true,true) 方法效果类似,因为它会清除排队的动画并使当前动画跳到最终值。不过,与 stop(true,true) 不同的是,它会使所有排队的动画都跳到各自的最终值。finish() 方法用得不多,我们简单了解一下即可。

【推荐学习:jQuery视频教程、web前端开发视频】

以上就是jquery stop()方法有什么用的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2937024.html

(0)
上一篇 2025年3月11日 21:07:24
下一篇 2025年3月1日 16:01:24

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • jquery contains()方法有什么用

    在jquery中,contains()方法用于判断指定元素内是否包含另一个元素,即用于判断另一个元素是否是指定元素的后代,语法为“$.contains(祖辈容器元素,后代元素)”。 本教程操作环境:windows7系统、jquery1.10…

    2025年3月11日
    200
  • jquery怎么移除readonly属性

    在jquery中,可以利用removeAttr()方法来移除元素的readonly属性,该方法可以从被选元素中移除指定属性,语法“$(selector).removeAttr(“readonly”)”。 本教程操作环…

    2025年3月11日
    200
  • jquery eq()怎么用

    在jquery中,eq()方法用于返回带有被选元素的指定索引号的元素,语法“$(selector).eq(index)”;而“ :eq()”选择器用于选取带有指定索引值的元素,语法“$(“:eq(index)”)”。…

    2025年3月11日 编程技术
    200
  • jquery怎么改变img的src属性

    jquery改变img src属性的方法:1、使用attr()属性,语法“$(“img”).attr(“src”,”图片文件的地址”)”;2、使用prop()方法,语法…

    2025年3月11日
    200
  • jquery怎么隐藏span元素

    隐藏方法:1、使用“$(“span”).hide();”语句来隐藏;2、使用“$(“span”).toggle(false);”语句来隐藏;3、使用“$(“span”)…

    2025年3月11日
    200
  • jquery库类型分几种

    jquery库类型分2种:1、生产版“jquery.min.js”,经过工具压缩或经过服务器开启gzip压缩后,主要用于产品和项目;2、开发版“jquery.js”,主要用于测试,学习和开发。 本教程操作环境:windows7系统、jque…

    2025年3月11日
    200
  • jquery事件委托方法有哪些

    jquery事件委托方法有:1、blind()方法,主要用于给选择到的元素进行事件绑定;2、live()方法,向当前或未来的匹配元素添加一个或多个事件处理器;3、delegate()方法;4、on()方法,用于将监听事件绑定到就近父级元素。…

    2025年3月11日
    200
  • jquery中append是什么意思

    在jquery中,append的意思为“追加”,用于在被选元素的结尾插入指定内容;语法为“$(A).append(B)”,表示往A内部的末尾处插入B内容(可包含HTML标签)。 本教程操作环境:windows7系统、jquery1.10.2…

    2025年3月11日
    200
  • jquery中parents()方法有什么用

    在jquery中,parents()方法用于获得当前匹配元素集合中每个元素的祖先元素,语法为“$(selector).parents(filter)”;参数“filter”可选,用于规定缩小搜索祖先元素范围的选择器表达式。 本教程操作环境:…

    2025年3月11日
    200
  • jquery怎么删除字符串第一个字符

    删除字符串第一个字符的方法:1、使用“$(selector).val()”语句获取元素中的字符串内容;2、使用substr()方法对字符串进行截取,进而实现删除字符串中第一个字符,语法为“字符串内容.substr(1,字符串长度)”。 本教…

    2025年3月11日 编程技术
    200

发表回复

登录后才能评论