jQuery

2016-06-23 3 views
10

का उपयोग कर सीएसएस चर बदलें बदलें क्या jQuery का उपयोग कर सीएसएस में उपयोग किए गए चर को बदलना संभव है? सरल उदाहरण:jQuery

html { 
 
    --defaultColor: teal; 
 
} 
 
.box { 
 
    background: var(--defaultColor); 
 
    width: 100px; 
 
    height: 100px; 
 
    margin: 5px; 
 
    float: left; 
 
} 
 
.circle { 
 
    background: #eee; 
 
    border: 2px solid var(--defaultColor); 
 
    width: 100px; 
 
    height: 100px; 
 
    margin: 5px; 
 
    float: left; 
 
    border-radius: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="clickToChange" type="button" style="width: 100%;">Click to Change</button> 
 
<div class="box"></div> 
 
<div class="box"></div> 
 
<div class="box"></div> 
 
<br/> 
 
<div class="circle"></div> 
 
<div class="circle"></div> 
 
<div class="circle"></div>

मैं कैसे उदाहरण के लिए लाल को चैती से चर रंग बदल सकते हैं? यह काम नहीं करता है।

$("#clickToChange").click(function(){ 
    $(html).css("--defaultColor", "red"); 
}); 
+0

यहां सीएसएस विधि का मेरा बंदर पैच है ताकि आप '.css' विधि https://gist.github.com/jcubic/9ef9fa2561de8430e953e2fe62011c20 – jcubic

उत्तर

11

आप का उपयोग कर सीएसएस चर बदल सकता है सादा जावास्क्रिप्ट elem.style.setProperty("variableName", "variableProp");

$("html").on('click', function() { 
 
    
 
    $("body").get(0).style.setProperty("--color", "hotpink"); 
 
    
 
});
body { 
 
    --color: blue; 
 
    background-color: var(--color); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
click me!

+2

jquery में, आप कर सकते हैं: $ ("html")। Attr ("style", "- defaultcolor: hotpink"); – DinoMyte

+0

अच्छी तरह से किया गया, मैं ईमानदारी से नहीं सोचा था कि यह नियमित अभिव्यक्तियों के कुछ उपयोग किए बिना संभव है, या होगा! मुझे गलत साबित हुआ है। :) –

+0

काम करने के समाधान के लिए @MattDiMu और @ DinoMyte दोनों धन्यवाद। –

2

सरल समाधान IMHO: एक वर्ग बदलें, बारी में डिफ़ॉल्ट रंग बदल जाता है कि:

html { 
    --defaultColor: teal; 
} 
html.someOtherDefaultColor { 
    --defaultColor: rebeccapurple; 
} 

$("#clickToChange").click(function(){ 
    $(html).toggleClass("someOtherDefaultColor"); 
}); 
+0

के साथ सीएसएस चर का उपयोग कर सकें जो मैं भी सोच रहा था। –

+0

हालांकि यह एक कार्य समाधान प्रदान करता है, और प्रश्न के दूसरे भाग का जवाब देता है, यह पूछे जाने वाले पहले प्रश्न का उत्तर देने से बचाता है। –

+0

@ डेविड थॉमस, दिए गए, लेकिन यह भी, _that निर्भर करता है - यह भी अंतर्निहित समस्या को हल कर सकता है (केवल यह करने के लिए) जिसे पूछा गया था। और ज्यादातर जगहों पर जहां इस तरह से कुछ हासिल करना संभव है, कई लोग चिंताओं को अलग करने के बारे में भी बेहतर तरीका मानते हैं। – CBroe