Rumah > hujung hadapan web > tutorial js > Mengapa jQuery's animate() Gagal Menghidupkan Warna Latar Belakang pada Mouseover, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa jQuery's animate() Gagal Menghidupkan Warna Latar Belakang pada Mouseover, dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Lepaskan: 2024-12-26 09:56:20
asal
252 orang telah melayarinya

Why Does jQuery's animate() Fail to Animate Background Color on Mouseover, and How Can I Fix It?

jQuery: Animasikan Perubahan Warna Latar Belakang pada Mouseover

Latar Belakang:

jQuery menyediakan kaedah animate() yang berkuasa untuk lancar peralihan pelbagai sifat CSS dari semasa ke semasa. Walau bagaimanapun, percubaan untuk menghidupkan sifat "warna latar belakang" selalunya mengakibatkan ralat "Harta Tidak Sah".

Isu:

Apabila cuba menghidupkan warna latar belakang menggunakan jQuery pada tetikus, anda mungkin menghadapi ini ralat:

$(".usercontent").mouseover(function() {
    $(this).animate({ backgroundColor: "olive" }, "slow");
});
Salin selepas log masuk

Penyelesaian:

Untuk menangani isu ini, pemalam warna jQuery perlu dimuatkan, yang menyediakan sokongan untuk menganimasikan pelbagai sifat warna. Begini cara untuk melaksanakannya:

// Include the jQuery color plugin


// Animate background color on mouseover using plugin
$(".usercontent").mouseover(function() {
    $(this).animate({ backgroundColor: "olive" }, "slow");
});
Salin selepas log masuk

Pelaksanaan Plugin:

Pemalam ini meningkatkan kaedah teras jQuery animate() untuk mengendalikan peralihan warna. Ia membolehkan anda menentukan nilai warna dalam pelbagai format, termasuk nama warna RGB, perenambelasan dan CSS. Berikut ialah coretan daripada pemalam:

jQuery.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function (f, e) {
    jQuery.fx.step[e] = function (g) {
        ...
        g.elem.style[e] = "rgb(" + [Math.max(Math.min(parseInt((g.pos * (g.end[0] - g.start[0])) + g.start[0]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[1] - g.start[1])) + g.start[1]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[2] - g.start[2])) + g.start[2]), 255), 0)].join(",") + ")"
    }
});
Salin selepas log masuk

Fungsi langkah ini mengira nilai warna peralihan secara berperingkat, memastikan animasi yang lancar antara warna permulaan dan akhir.

Atas ialah kandungan terperinci Mengapa jQuery's animate() Gagal Menghidupkan Warna Latar Belakang pada Mouseover, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan