Rumah >hujung hadapan web >tutorial css >Bagaimanakah Saya Boleh Mencetuskan Semula Animasi CSS WebKit Menggunakan JavaScript?

Bagaimanakah Saya Boleh Mencetuskan Semula Animasi CSS WebKit Menggunakan JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 06:29:14687semak imbas

How Can I Reliably Re-trigger WebKit CSS Animations Using JavaScript?

Mencetuskan Semula Animasi CSS WebKit Secara Imperatif

Apabila bekerja dengan animasi CSS WebKit, had boleh timbul apabila cuba mencetus semula animasi beberapa kali . Artikel ini menangani senario sedemikian dan menyediakan penyelesaian untuk memulakan semula animasi CSS melalui JavaScript tanpa menggunakan tamat masa atau animasi tambahan.

Untuk mencapai matlamat ini, pelayar WebKit menggunakan acara "webkitAnimationEnd", yang dicetuskan selepas selesai kitaran animasi. Dengan memanfaatkan acara ini, anda boleh menetapkan semula dan melancarkan semula animasi secara pengaturcaraan.

Pelaksanaan JavaScript Vanila

Dalam JavaScript tulen, pendekatannya melibatkan:

  1. Memilih elemen untuk dianimasikan.
  2. Menambahkan pendengar acara pada acara "webkitAnimationEnd".
  3. Menetapkan semula animasi apabila peristiwa dicetuskan.
var element = document.getElementById('box');

element.addEventListener('webkitAnimationEnd', function(){
    this.style.webkitAnimationName = '';
}, false);

document.getElementById('button').onclick = function(){
    element.style.webkitAnimationName = 'shake';
};

Pelaksanaan jQuery

Menggunakan jQuery menawarkan tawaran yang dipermudahkan sintaks:

var $element = $('#box').bind('webkitAnimationEnd', function(){
    this.style.webkitAnimationName = '';
});

$('#button').click(function(){
    $element.css('webkitAnimationName', 'shake');
});

Sokongan CSS Merentas Pelayar

Untuk keserasian merentas penyemak imbas, pertimbangkan untuk menggunakan pustaka pengesanan penyemak imbas. Ujian peralihan CSS3 menyediakan objek sokongan yang boleh membantu dalam mengenal pasti nama acara dan sifat animasi yang betul untuk penyemak imbas yang berbeza.

// Browser detection object
var css3AnimationSupport = (function(){
    var div = document.createElement('div'),
        divStyle = div.style;
    return {
        transform: divStyle.MozTransform  ||
                   divStyle.MsTransform   ||
                   divStyle.WebkitTransform ||
                   divStyle.OTransform    ||
                   divStyle.transform,
        transition: divStyle.MozTransition ||
                    divStyle.MsTransition   ||
                    divStyle.WebkitTransition ||
                    divStyle.OTransition    ||
                    divStyle.transition
    };
}());

Dengan memanfaatkan nama acara dan sifat animasi yang sesuai, pendekatan ini membolehkan pencetus semula Animasi CSS dalam cara yang serasi merentas pelayar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetuskan Semula Animasi CSS WebKit Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn