繁体   English   中英

CSS animation 的 jQuery 事件监听器结束

[英]jQuery event listener for CSS animation end

我对 jQuery 有疑问。 我尝试添加.on event listener器,用于 animation 结束时。 它不工作。 我希望每次 animation 重新启动时, jetPositionanimationDuration都是随机的。 我放了一个console.log来检查监听器是否被触发:(非常感谢任何帮助。

我还在进一步研究中将其更改为动画迭代事件侦听器。 尽管它并不总是从屏幕左侧开始,并且在没有明确原因的情况下在控制台日志中重复出现,但它似乎可以工作。

作为额外的奖励,我希望在整个视口中应用多个 jet 实例。

CSS:

#jet {
    animation: fly linear 0s infinite normal backwards;
}

/*Keyframes*/

@keyframes fly {
    from {
        transform: translateX(-10vw)
    }

    to {
        transform: translateX(140vw)
    }
}

jQuery:

function getRndInteger(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }

    // Jet Animation
    var jet = $("#jet");

    jet.css({
        top: getRndInteger(20, 50) + "vh",
        left: '0vw',
        width: '8vw',
        position: 'absolute',
        animationDuration: getRndInteger(5, 10) + "s"
    });

    function flyJet() {
        jet.css({
            top: getRndInteger(20, 50) + "vh",
            left: '0vw',
            width: '8vw',
            position: 'absolute',
            animationDuration: getRndInteger(5, 10) + "s"
        });
    }


    jet.on("animationiteration", function () {
        console.log("repeating");
        flyJet();
    });

尝试使用类似的东西:

element.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',   
    function(e) {
    // code to execute after transition ends
});

查看以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM