• jquery-animate()动画


    一、animate()语法

    $(“选择器”).animate({CSS样式},时间,运动方式,回调函数);

    参数说明:

    参数1CSS属性名,属性值,JSON格式{"属性名":"属性值"}    

    参数2:动画执行时间,毫秒

    参数3:动画的运动方式,参数要用引号,例如:linear是匀速播放

    参数4:回调函数function(){},动画完毕后,执行的函数

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style type="text/css">
        div{
            width:200px;
            height:200px;
            background: greenyellow;
            position:absolute;
            top:0;
            left:0;
        }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
    $('div').animate({'top':500,'left':400},3000,function(){
        $(this).css('backgroundColor','pink');
    })
    </script>

    二、不能参加运动的属性

    我们关心的不能参加运动的有哪些?

    1、background-color 背景色。但是CSS3可以实现

    2、background-position背景定位,但是CSS3可以实现

    3、一切的CSS3属性不能动画,border-radius除外。

    三、动画排序

    一个元素animate的时候,会按顺序执行

    //$('div').animate({"left":500},1000);

    //$('div').animate({"top":500},1000);

    //$('div').animate({"left":0},1000);

    //$('div').animate({"top":0},1000);

    同一个元素多次打点animate的时候,动画会自动排成队列,谁先写的,谁先执行。

    $('div').animate({"left":500},1000).animate({"top":500},1000).animate({"left":0},1000).animate({"top":0},1000);

    四、异步语句和回调函数

    animate动画方法是一个异步语句,也可以写回调函数,描述运动结束后可以做什么事情。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style type="text/css">
        div{
            width:100px;
            height:100px;
            background: red;
            position:absolute;
            top:100px;
            left:0;
        }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
     $('div').animate({'left':500},1000,function(){
         $(this).css('backgroundColor','blue');
     })
    
    </script>

    其他方法也都有回调函数:

    slideUp()slideDown()fadeIn()fadeOut()show()hide()

    五、延迟动画delay()

    所有动画方法都可以用delay()。表示这动画不是立即执行,要等待一段时间再执行。

    参数:规定延迟时间。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style type="text/css">
        div{
            width:100px;
            height:100px;
            background: red;
            position:absolute;
            top:0;
            left:0;
    
        }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
    // $('div').delay(1000).slideUp();
    // $('div').delay(1000).slideDown();
    // $('div').delay(2000).nimate({'left':500},1000)
    
    $('div').delay(1000).slideUp().delay(1000).slideDown().delay(2000).animate({'left':500},1000)
    </script>

    六、stop()停止动画方法

    //stop(是否清空动画队列,是否完成当前动画); 默认stop(false,false);
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style type="text/css">
         div{
             width:100px;
             height:100px;
             background: red;
             position:absolute;
             top:100px;
             left:0;
         }
        
        
        </style>
    </head>
    <body>
        <input type="button" value="stop()默认flasefalse">
        <input type="button" value="stop(true)">
        <input type="button" value="stop(true,true)">
        <input type="button" value="stop(false,true)">
        <input type="button" value="finish()">
        <div></div>
    </body>
    </html>
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
    $('div').animate({'left':1000},1500);
    $('div').animate({'top':300},1500);
    $('div').animate({'left':0},1500);
    $('div').animate({'top':100},1500);
    //stop(是否清空动画队列,是否完成当前动画);
    $('input').eq(0).click(function(){
        $('div').stop();// false false
    })
    $('input').eq(1).click(function(){
        $('div').stop(true);  //true flase
    })
    $('input').eq(2).click(function(){
        $('div').stop(true,true);
    })
    $('input').eq(3).click(function(){
        $('div').stop(false,true);
    })
    </script>

    七、is(':animated')

    is表示“是不是”,而不是“是”,表示检测某一个元素是否具备某种状态,返回truefalse的布尔值。

    is里面可以写选择器:

    1 $(this).is(".t"); //判断当前被点击的p是否有.t这个类名,是就返回true

    2 $(this).is("#t"); //判断当前被点击的p是否有#t这个id名,是就返回true

    3 $(this).is("p:odd"); //判断当前被点击的p是否是奇数,是就返回true

    4 $(this).is("p:lt(3)"); //判断当前被点击的p下标是否小于3,是就返回true

    $(this).is("p:visible"); //判断当前被点击的p是否可见

    八、动画节流

    当一个元素身上被积累了很多动画,不经之间就积累了,我们称为“流氓”

    希望新的动画触发时,前面这个动画全部清空,立即停止,防止用户频繁触发事件

    方法1:用stop()。清空前面所有动画队列,立即停止当前动画,参数值传第一个true

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style type="text/css">
        div{
            width:100px;
            height:100px;
            background: orange;
            position:absolute;
            top:100px;
            left:0;
        }
        </style>
    </head>
    <body>
        <input type="button" value="到0广州">
        <input type="button" value="到1000北京">
        <div></div>
    </body>
    </html>
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
     $('input').eq(0).click(function(){
         $('div').stop(true).animate({'left':0},1000);
     })
     $('input').eq(1).click(function(){
         $('div').stop(true).animate({'left':1000},1000)
     })
    
    </script>

    方法2:节流方法,判断元素is()是否在运动过程中,如果是,就不执行后面的操作;如果不是,就执行后面的动画。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style type="text/css">
        div{
            width:100px;
            height:100px;
            background: orange;
            position:absolute;
            top:100px;
            left:0;
        }
        </style>
    </head>
    <body>
          <input type="button" value="到0广州">
          <input type="button" value="到1000北京"> 
          <div></div>
    </body>
    </html>
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
     $('input').eq(0).click(function(){
         if(!$('div').is(':animated')){
             $('div').animate({'left':0}, 2000)
         }
     })
     $('input').eq(1).click(function(){
        if(!$('div').is(':animated')){
            $('div').animate({"left":1000},2000);
        }
     })
    
    </script>
  • 相关阅读:
    友盟上报 IOS
    UTF8编码
    Hill加密算法
    Base64编码
    Logistic Regression 算法向量化实现及心得
    152. Maximum Product Subarray(中等, 神奇的 swap)
    216. Combination Sum III(medium, backtrack, 本类问题做的最快的一次)
    77. Combinations(medium, backtrack, 重要, 弄了1小时)
    47. Permutations II(medium, backtrack, 重要, 条件较难思考)
    3.5 find() 判断是否存在某元素
  • 原文地址:https://www.cnblogs.com/smivico/p/7832802.html
Copyright © 2020-2023  润新知