我有一個JavaScript顏色選擇器鏈接到文本輸入。我想在我的幾個彩色元素上更改顏色輸入更新的顏色。我可以創建幾個類,每種顏色(藍色,紅色,綠色等),但我想有整個24位coloe調色板,不只是其中的一些。 是否可以修改與給定CSS類關聯的屬性的值?如果是,那麼修改這些值是否會在渲染頁面上實時應用新值? 在此先感謝:)使用JavaScript修改與給定CSS類關聯的CSS屬性
回答
完全可能的,是的,它會實時更新。
這是一個函數來做類屬性更新,綁定到一個mouseover事件(需要jQuery 1.0 +)。鼠標懸停在DIV id爲myDiv將與類myColorDivs更新CSS背景顏色爲白色的所有div的:
$('#myDiv').mouseover(function() {
$('.myColorDivs').css('background', '#fff');
});
請注意,修改類的CSS規則和直接使用類修改元素是有區別的。例如,如果添加了該類的新元素,則不會受到更改的影響。 – Pointy
完全正確。我只是在我的示例中修改頁面中已存在的元素,而不是修改實際的類本身。 – flemingslone
謝謝你的回答!這不完全是我想要做的,但它會做到這一點。如果我需要添加一個元素,我仍然可以對其進行預編譯或重新執行該樣式更新,即使它在性能方面也不是很乾淨。 – Virus721
對不起,我來晚了...... 前幾天有同樣的問題,並沒有發現一個實際的答案。 下面是我如何解決它(需要jQuery):
在所有其他樣式表添加一個內聯樣式表後,您的頁面可能需要與您想要更改的類。 爲此樣式表分配一個TITLE屬性!
<style title="tomrulez" type="text/css">
/*the stylesheet to change - Note the TITLE*/
.shaded{
color:green;
}
</style>
添加此功能:
function modCSS (stylesheet, rule, attrib, newval){
$.each(document.styleSheets, function(skey, svalue) {
if(svalue.title==stylesheet){
$.each(svalue.cssRules,function (rkey,rvalue){
if (rvalue.selectorText==rule){
rvalue.style[attrib]=newval;
}
});
}
});
}
調用它像這樣:
<div onclick="modCSS('tomrulez','.shaded','color','red')"> click here</div>
的參數是:
- 樣式 - >的最後一個樣式表的TITLE在你的 頁
- 規則 - >你想改變的CSS規則
- ATTRIB - >你想改變
- 的newval規則的屬性 - 你要分配給>的新值那個屬性
我已經用Firefox,Chrome和IE10測試過了。 IE可能無法在舊版本中使用。但我主要開發後端的一小部分用戶,如果我告訴他們不使用IE瀏覽器(是的,我很幸運!)
Btw。這裏是一個適合我的Plunker:http://plnkr.co/edit/EMDpjU06U2p83Df8Lolq?p=preview
- 1. 使用JavaScript更改CSS類屬性
- 2. 的JavaScript修改CSS類屬性,而只知道類的名字
- 3. jQuery修改CSS屬性
- 4. SASS與CSS屬性,包括級聯類
- 5. JavaScript的改變CSS屬性
- 6. 修改CSS使用Javascript
- 7. 修改CSS使用JavaScript
- 8. 使用Javascript更改CSS屬性/ jquery
- 9. 使用Javascript更改CSS屬性
- 10. 如何使用javascript更改css屬性
- 11. 使用角度來修改css類的屬性
- 12. 直接使用knockout'data-bind'修改CSS類的屬性
- 13. 從Javascript更改CSS屬性
- 14. 改變CSS類屬性
- 15. 不修改鏈接屬性的CSS
- 16. 查找修改後的CSS/JS屬性
- 17. 使用javascript修改網頁的CSS
- 18. 使用.css()與變量定義css屬性值的問題
- 19. 如何用javascript更改CSS屬性?
- 20. 修改一個css動畫屬性?
- 21. 屬性類css
- 22. 影響以前修改的CSS屬性的css轉換
- 23. CSS中的級聯屬性
- 24. 修改CSS與equalsign
- 25. 使用getElementsByClassName訪問內聯CSS屬性
- 26. 如何用Javascript設置CSS類屬性?
- 27. 用Vue.js更改CSS類屬性
- 28. 更改鏈中的css屬性 - JavaScript
- 29. 使用JS修改在CSS文件中聲明的屬性。
- 30. 如何使用CSS選擇器修改兄弟的屬性:focus?
是jQuery的一個選項,因爲這會是最簡單的方法嗎? –
是的,我使用jQuery,flemingstone的答案解決了我的問題。 – Virus721
好的。下一次,在標籤中指定。 –