zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    绝对均匀图生成算法
    告别S! S! H! 秒杀终端工具——FastLogin快捷登录
    使用Atom打造无懈可击的Markdown编辑器
    程序异常分析指南
    javascript opacity兼容性随笔
    javascript event兼容性随笔
    javascript Xml兼容性随笔
    addEventListener、attachEvent、cancelBubble兼容性随笔
    算法--逆波兰表达式(数学逆波兰表达式和交并集逆波兰表达式)
    算法--区间数据计算
  • 原文地址:https://www.cnblogs.com/smivico/p/7832802.html
Copyright © 2011-2022 走看看