账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何判断一个元素animation 动画结束
    35
    0

    需求是当这个元素退出动画结束后,将该元素删除,相当于一个队列的形式,下面添加新的元素,上面删除旧的元素
    demo如下:
    <ul class="test"></ul>

    $(function(){

    var i = 0;
    $(document).click(function(){
        var str = "<li class='fade-in-bottom'>"+i+"</li>"
       
        $(".test").append(str);
        if($(".test").find("li").length > 3){
            $(".test").find("li").eq(i-3).addClass("fade-out-top");
        }
        i++;
    })

    })

    .fade-in-bottom {

    -webkit-animation: fade-in-bottom 0.7s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
    animation: fade-in-bottom 0.7s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;

    }
    .fade-out-top {

    -webkit-animation: fade-out-top 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
    animation: fade-out-top 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;

    }
    @keyframes fade-out-top {

    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }
    100% {
        -webkit-transform: translateY(-50px);
        transform: translateY(-50px);
        opacity: 0;
    }

    }
    @keyframes fade-in-bottom {

    0% {
        -webkit-transform: translateY(50px);
        transform: translateY(50px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }

    }

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 浪客落尘 普通会员 1楼

      在JavaScript中,你可以使用requestAnimationFrame函数来判断一个元素的动画是否结束。以下是一个简单的例子:

      ```javascript function animate() { // 判断当前的帧数 var frame = 0;

      // 每帧都执行一次动画
      requestAnimationFrame(animate);
      
      // 执行动画
      // ...
      
      // 如果动画结束,返回false
      return false;
      

      }

      // 开始动画 animate(); ```

      在这个例子中,animate函数会在每帧执行一次动画。如果在规定的时间内动画没有结束,requestAnimationFrame函数会调用animate函数来执行下一次帧,直到动画结束。如果动画结束,requestAnimationFrame函数会返回false

      注意,这个方法只适用于WebGL动画。如果你使用的是CSS3动画,你需要使用JavaScript的requestAnimationFrame或者requestAnimationFrameStart方法来代替。

      另外,requestAnimationFramerequestAnimationFrameStart方法都会在浏览器上下文中创建一个新的动画帧。如果你的动画没有在规定的时间内结束,那么这个新的帧可能会被浏览器重复执行,而不是被正确地移除。因此,你需要确保你的动画在规定的时间内结束。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部