通過js實現css樣式的動態切換(React,Vue均適用)


 有一些需求,如動態切換界面主題,就需要通過js去控制css。

對應的實現方案也有很多,如Less中的modifyVar,這里推薦一種兼容性比較好的做法,使用瀏覽器原生支持的——CSS變量。

https://developer.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties

首先在根css文件頭部(如index.css或App.css之類的)聲明變量以及默認值,以雙短橫線--開頭。

:root{
    --show-bullet: visible;
};

其中show-bullet是我自定義的變量,用於控制彈幕是否展示。:root代表這個是全局的變量,所以你可以在任何地方訪問到這個變量,

如子組件的css中。

比如我在自定義彈幕組件中:

.bullet {
    visibility: var(--show-bullet);
}

var代表訪問變量。因此默認情況下彈幕是可見的。

那么我如果想要做一個按鈕的點擊事件關閉彈幕:

只需要(以下為js代碼):

document.documentElement.style.setProperty('--show-bullet','hidden');

彈幕就會關閉顯示了。其中注意在定義css變量時,無需加引號,而在通過js修改時一定要加引號,確保第二個參數為字符串。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM