用js实现一个无限循环的动画

  1. 建立移动函数,e.style.left = ` ${left++}px`
  2. 当flag=true时,left++,当left>=100,flag取反
  3. 当flag=false时,left--,当left<=0,flag取反

方法1:用setInterval(function(),1000/60)执行上面函数

方法2:用window.requestAnimationFrame()实现

(function dd(){

        render()

        window.requestAnimationFrame(dd)

    })()

<!doctype html>
<html lang="en">
<head>
    <title>Document</title>
    <style>
        #e{
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
            left: 0; 
        }
    </style>
</head>
<body>
<div id="e"></div>
<script>


    var e = document.getElementById("e");
    var flag = true;
    var left = 0;

    function render() {
       if(flag==true){
           if(left>=100){
               flag=false
           }
           e.style.left=`${left++}px`
       }else{
           if(left<=0){
               flag=true
           }
           e.style.left=`${left--}px`
       }
    }
    /*setInterval(function(){
        render()
    },1000/60)*/
    
    (function dd(){
        render()
        window.requestAnimationFrame(dd)
    })()

</script>
</body>
</html>

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值