簡體   English   中英

單擊按鈕即可獲得CSS動畫

[英]CSS animation on click of a button

這是the

$(document).ready(function(){
  $('#btn-animate').click(function(){
    animate();
  });
  $('#btn-remove').click(function(){
    $('.to-animate').removeClass('animate');
  });

  function animate(){
    $('.to-animate').removeClass('animate');
    $('.to-animate').addClass('animate');
  }
});

在這里,如果我單擊“動畫”按鈕,它將為div添加一個“動畫”類並對其進行動畫處理(更改顏色)。 但是,如果再次單擊,它會嘗試刪除“動畫”類並將其重新添加,以便動畫再次觸發。

但這沒有發生。 奇怪的是,如果我單擊“刪除”按鈕以刪除“動畫”類,然后使用“動畫”按鈕添加該類,則它將再次進行動畫處理。

誰能解釋為什么第一個按鈕無法提供所需的結果? 每次單擊“動畫”按鈕時如何觸發動畫?

通常,瀏覽器直到所有javascript完成運行后才重繪UI,並且大多數瀏覽器足夠聰明,以至於在第二次單擊動畫按鈕之后,DOM前后都是相同的,因此它不會執行任何操作。

最簡單的解決方案是刪除該類,然后設置一個超時時間,以在短暫的延遲后將其重新添加。

function animate(){
    $('.to-animate').removeClass('animate');
    setTimeout(function(){$('.to-animate').addClass('animate');}, 10);
}

老兄,據我所知,一切都正常,我打開了鏈接,那里也正常。

如果您檢查類是否存在而不是刪除,該怎么辦?

function animate(){
    if(!$('.to-animate').hasClass('animate')){
        $('.to-animate').addClass('animate');
    }
}

jQuery已經有了您需要的類。 它稱為toggleClass

$(document).ready(function() {
  $('#btn-animate,#btn-remove').click(function() {
    $('.to-animate').toggleClass('animate');
});

無需從類中獲取動畫,只需使用jquery進行動畫處理

$(document).ready(function(){
  $('#btn-animate').click(function(){
    $(this).animate(
    "opacity":"0",
    // whatever animation you want in here
    }, 300);
});

暫無
暫無

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

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