เมธอด getComputedStyle() ให้อ็อบเจ็กต์ที่มีสไตล์ทั้งหมดที่ใช้กับองค์ประกอบเป้าหมาย ใช้เมธอด getPropertyValue() เพื่อรับคุณสมบัติที่ต้องการจากรูปแบบที่คำนวณ setProperty() ใช้เพื่อเปลี่ยนค่าของตัวแปร CSS
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าเราสามารถรับและตั้งค่าตัวแปร CSS โดยใช้ JavaScript ได้อย่างไร
<!DOCTYPE html> <html> <head> <style> :root { --outerColor: magenta; --innerColor: lightgreen; text-align: center; } div { margin: 5%; padding: 10%; background-color: var(--innerColor); border: 2px groove var(--outerColor); } </style> </head> <body> <div onmouseover="showColor()" onmouseout="changeColor()"> <p></p> </div> </body> <script> let ele = document.querySelector(':root'); let para = document.querySelector('p'); function showColor() { let cs = getComputedStyle(ele); para.textContent = ("Previously " + cs.getPropertyValue('--innerColor') + " color"); } function changeColor() { let item = document.querySelector('div'); item.style.setProperty('--innerColor', 'magenta') } </script> </html>
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
ตัวอย่าง
<!DOCTYPE html> <html> <head> <style> :root { --customColor: seagreen; } div { margin: 5%; width: 130px; height: 130px; box-shadow: inset 0 0 38px var(--customColor); border-radius: 50%; } </style> </head> <body> <div onmouseover="toggle()"></div> </body> <script> let ele = document.querySelector(':root'); function toggle() { let cs = getComputedStyle(ele); let item = document.querySelector('div'); if(cs.getPropertyValue('--customColor') !== 'blue') { item.style.setProperty('--customColor', 'blue') } } </script> </html>
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -