簡體   English   中英

停止后重新啟動CSS3動畫

[英]Restart CSS3 animation after it's stopped

我嘗試實現一個CSS3列表菜單,其中每個項目都帶有動畫。 在頁面加載時,這是一個隱藏的菜單,並且動畫是通過單擊ID為“#trigger-overlay”的按鈕開始的。 有一個十字形關閉菜單,我想再次單擊帶有“#trigger-overlay” ID的按鈕重新開始動畫。 我認為缺少一部分代碼,可能與style.webkitAnimationPlayState有關,但我不知道如何。 有什么幫助嗎?

這是我的代碼:

$( "#trigger-overlay" ).click(function() {
    $("ul#menu-main-menu li").each(function (i) {
        $(this).attr("style", "-webkit-animation-delay:" + i * 300 + "ms;"
            + "-moz-animation-delay:" + i * 300 + "ms;"
            + "-o-animation-delay:" + i * 300 + "ms;"
            + "animation-delay:" + i * 300 + "ms;");
        if (i == $("ul#menu-main-menu li").size() -1) {
            $("ul#menu-main-menu").addClass("play")
        }
    });

您可以使用transitionend事件處理程序:

function addAnimation($elem) {
    $elem.attr("style", "-webkit-animation-delay:" + i * 300 + "ms;"
        + "-moz-animation-delay:" + i * 300 + "ms;"
        + "-o-animation-delay:" + i * 300 + "ms;"
        + "animation-delay:" + i * 300 + "ms;");
}

$( "#trigger-overlay" ).click(function() {
  $("ul#menu-main-menu li").each(function (i) {
    addAnimation($(this));
    if (i == $("ul#menu-main-menu li").size() -1) {
        $("ul#menu-main-menu").addClass("play")
    }
    $(this).off('transitionend').on('transitionend', function() {
      addAnimation($(this));
    });
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM