关于jquery自带动画效果的stop()问题

首先先来看一下jquery中stop()的用法

  • stop()用于在动画执行前停止正在执行的动画
  • stop(stopAll,goToEnd)的两个参数为布尔值;
  • stopAll:true/false;是否停止对象接下来所有的动画;
  • goToEnd:true/false;停止方式是直接将动画播放到结束位置还是停止在当前位置。

jquery中的fadeIn、fadeOut,slideDown、slideUp如果设置stop(false,false),动画停止的位置将被记录下来,下一次动画走到上次被停止的位置就会结束。而我们需要的是下一次动画依旧能够完整执行,所以需要设置stop(true,true),将动画直接播放到结束。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="//cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script>
    <style type="text/css">
        .wodejifen_box{
            position:relative;
            width:80px;
            height:34px;
            overflow: visible;
        }
        .wodejifen{
            height:34px;
            font-size: 12px;
            width:80px;
            line-height: 34px;
            border:1px solid red ;
            text-align: center;
        }
        .wodejifen_content{
            position:absolute;
            width:150px;
            top:34px;
            left:0;
            border:1px solid black;
            padding:5px;
            display:none;
        }
        .wodejifen_content li{
            border-bottom:1px solid black;
            line-height:20px;
            list-style: none;
            padding:0;
        }

    </style>
</head>
<body>
<div class="wodejifen_box">
    <div class="wodejifen">
        我的积分    
    </div>
    <ul class="wodejifen_content">
            <li>内容0000000</li>
            <li>内容1111111</li>
            <li>内容2222222</li>
            <li>内容3333333</li>
    </ul>
</div>
    
    <script type="text/javascript">

        $('.wodejifen').mouseover(function(event){
            $('.wodejifen_content').stop(true,true).slideDown(150);
        }).mouseout(function(event){
            $('.wodejifen_content').stop(true,true).slideUp(150);
        });

    </script>
</body>
</html>
原文地址:https://www.cnblogs.com/yuxinpeng/p/5867834.html