Rumah >hujung hadapan web >tutorial css >Bagaimanakah Saya Boleh Mengubah Pembolehubah CSS Secara Dinamik Menggunakan JavaScript?

Bagaimanakah Saya Boleh Mengubah Pembolehubah CSS Secara Dinamik Menggunakan JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-12 21:05:12502semak imbas

How Can I Dynamically Change CSS Variables Using JavaScript?

Mengedit Pembolehubah CSS dengan JS

Anda sedang cuba mengedit pembolehubah CSS untuk mengawal penggayaan projek anda secara dinamik. Walaupun anda telah menentukan pembolehubah seperti --main-background-image dan --main-text-color, anda menghadapi ralat semasa cuba menukar nilainya menggunakan atribut.

Punca Punca

Ralat yang anda hadapi adalah disebabkan oleh penggunaan kaedah setAttribute yang salah untuk menukar CSS pembolehubah.

Penyelesaian

Terdapat tiga kaedah untuk mengedit pembolehubah CSS dengan JS:

  • style.cssTeks:

    document.documentElement.style.cssText = "--main-background-color: red";
  • style.setProperty:

    document.documentElement.style.setProperty("--main-background-color", "green");
  • setAttribute (dengan atribut "style"):

    document.documentElement.setAttribute("style", "--main-background-color: green");

Dalam coretan kod anda, gantikan baris yang diulas dengan salah satu kaedah di atas untuk berjaya mengedit pembolehubah CSS.

Demo

Pertimbangkan perkara berikut contoh:

html {
  --main-background-color: rgba(0,0,0,.25);
}

body {
  background-color: var(--main-background-color);
}
window.onload = function() {
  setTimeout(function() {
    document.documentElement.style.cssText = "--main-background-color: red";
  }, 2000);
};

Dalam demo ini, nilai --main-background-color bertukar kepada merah dua saat selepas halaman dimuatkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Pembolehubah CSS Secara Dinamik 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