jq动画

和自甴很熟 提交于 2019-11-29 18:36:53
使用jq 实现动画循环效果<!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>
    .box {
        height: 200px;
        background-color: green;
        font-size: 60px;
        color: white;
    }
    .item {
        width: 200px;
        height: 200px;
        position: fixed;
        top: 0;
        left: 0;
        background-color: red;
    }
    </style>
</head>
<body>
    
    <div class="item"></div>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    <script>
  
    function run(){
        $('.item').animate({
            width:  '50px',
            height : '50px',
            // backgroundColor : 'yellow',
            //animate不支持背景色的变化,要导入一个jq实现的颜色库
            top: '300px',
            left : '300px'
        },5000,function(){
            $('.item').animate({
                width:  '200px',
                height : '200px',
                top: '0',
                left : '0'
            },3000,run);
        });
    };

    run();
    // 接受三个参数,第一个是对象,接受目标样式列表; 第二个是时间;第三个是执行完成的回调函数
    </script>
</body>
</html>

吧执行的代码封装在函数里,并作为他自己的回调函数。就可以实现动画的反复实现

色彩动画不包含在核心jq库中~~~

padding-left 之类的值要写成驼峰的命名方法

然后,改变的样式,也可以做相对值的运算,相对于原有值

  $('.item').animate({
        width: '+=200px',
        height: '-=50px'
    },3000);

也可以使用预设的值   "show"、"hide" 或 "toggle":

举个栗子~~

  $('.item').animate({
            width: 'hide'
        }, 3000);

给元素设置了多个animate动画时,会按设置顺序逐一执行。不会产生覆盖。

举个栗子~

 <div class="item">いのししですね</div>
    <button class="btn">button</button>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    <script>
        $("button").click(function () {
            var div = $("div");
            div.animate({
                height: '300px',
                opacity: '0.4'
            }, "slow");
            div.animate({
                width: '300px',
                opacity: '0.8'
            }, "slow");
            div.animate({
                height: '100px',
                opacity: '0.4'
            }, "slow");
            div.animate({
                width: '100px',
                opacity: '0.8'
            }, "slow");
        });  
    </script>
 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!