Rumah > hujung hadapan web > tutorial css > Bagaimanakah Saya Boleh Mencapai Animasi Putaran CSS Merentas Pelayar dengan jQuery?

Bagaimanakah Saya Boleh Mencapai Animasi Putaran CSS Merentas Pelayar dengan jQuery?

Barbara Streisand
Lepaskan: 2024-12-04 03:05:11
asal
707 orang telah melayarinya

How Can I Achieve Cross-Browser CSS Rotation Animations with jQuery?

Putaran CSS Merentas Penyemak Imbas dengan jQuery.animate()

Masalah:

Melaksanakan Animasi putaran CSS menggunakan jQuery.animate() gagal berfungsi merentas pelayar. Putaran berfungsi apabila menggunakan .css(), tetapi tidak apabila menggunakan .animate().

Punca:

CSS-Transforms tidak boleh dianimasikan secara langsung dengan jQuery.

Penyelesaian:

Untuk melakukan CSS-Transform animasi menggunakan jQuery, anda boleh menggunakan kaedah alternatif berikut:

function AnimateRotate(angle) {
    var $elem = $('#MyDiv2');
    $({deg: 0}).animate({deg: angle}, {
        duration: 2000,
        step: function(now) {
            $elem.css({
                transform: 'rotate(' + now + 'deg)'
            });
        }
    });
}
Salin selepas log masuk

Penjelasan:

Kaedah ini menggunakan fungsi panggil balik "langkah" tersuai untuk mengemas kini "transformasi " sifat elemen yang dipilih pada setiap langkah animasi. Fungsi "langkah" menerima kedudukan animasi semasa (sekarang) sebagai parameter, yang boleh anda gunakan untuk mengira sudut putaran yang diingini.

Plugin:

Anda boleh balut kaedah ini ke dalam pemalam jQuery untuk lebih mudah gunakan:

$.fn.animateRotate = function(angle, duration, easing, complete) {
    return this.each(function() {
        var $elem = $(this);
        $({deg: 0}).animate({deg: angle}, {
            duration: duration,
            easing: easing,
            step: function(now) {
                $elem.css({
                   transform: 'rotate(' + now + 'deg)'
                 });
            },
            complete: complete || $.noop
        });
    });
};
Salin selepas log masuk

Penggunaan:

Untuk menggunakan pemalam, anda boleh menghubungi:

$('#MyDiv2').animateRotate(90);
Salin selepas log masuk

Kemas kini:

Penyelesaian yang disediakan telah dikemas kini beberapa kali untuk meningkatkan kecekapan dan menyediakan lebih banyak fleksibiliti.

  • Kemas kini 2: Dioptimumkan untuk menjadikan susunan hujah tidak penting.
  • Kemas kini 2.1: Memperbaiki isu konteks dengan panggilan balik lengkap.
  • Kemas kini 2.2: Menambah parameter mula untuk menogol animasi.

Butiran Penggunaan Tambahan:

  • Fungsi animateRotate menerima beberapa parameter pilihan, termasuk tempoh, pelonggaran dan lengkap, dengan nilai lalai disediakan.
  • Pengguna boleh menyediakan parameter ini dalam pelbagai cara, sama ada sebagai argumen kedudukan atau sebagai objek.
  • Fungsi "langkah" menyediakan kawalan tambahan ke atas putaran pada setiap langkah animasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Animasi Putaran CSS Merentas Pelayar dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan