मुझे पता है कि जावास्क्रिप्ट के माध्यम से तत्व की शैली को बदलने से सीधे एक रिफ्लो होगा। हालांकि, मैं सोच रहा था कि बैच में कई स्टाइल मानों को केवल एक रिफ्लो के साथ बदलना संभव है?एकाधिक रिफ्लो से बचने के लिए बैच में एकाधिक सीएसएस शैलियों को लागू करने का कोई तरीका है?
उत्तर
नहीं सीधे लेकिन वहाँ यहाँ रीफ़्लो के प्रभाव को कम पर कुछ अच्छे सुझाव हैं:
http://dev.opera.com/articles/view/efficient-javascript/?page=3
संक्षेप में, कुछ इस तरह का प्रयास करें:
दूसरा दृष्टिकोण एक परिभाषित करने के लिए किया जाता है तत्व के लिए शैली विशेषता शैलियों को एक एक के रूप में निर्दिष्ट करने के बजाय। अक्सर यह गतिशील परिवर्तन जैसे एनिमेशन, के लिए अनुकूल है जहां नई शैलियों को पहले से ज्ञात नहीं किया जा सकता है। यह शैली ऑब्जेक्ट की cssText संपत्ति का उपयोग करके या setAttribute का उपयोग करके किया जाता है। इंटरनेट एक्सप्लोरर दूसरे संस्करण की अनुमति नहीं देता है, और पहले की आवश्यकता है। ओपेरा 8 समेत कुछ पुराने ब्राउज़र, दूसरे दृष्टिकोण की आवश्यकता है, और पहले को समझें नहीं। तो आसान तरीका यह जांचना है कि पहला संस्करण समर्थित है और इसका उपयोग करें, तो को दूसरी बार वापस गिरें।
var posElem = document.getElementById('animation');
var newStyle = 'background: ' + newBack + ';' +
'color: ' + newColor + ';' +
'border: ' + newBorder + ';';
if(typeof(posElem.style.cssText) != 'undefined') {
posElem.style.cssText = newStyle; // Use += to preserve existing styles
} else {
posElem.setAttribute('style',newStyle);
}
आप jQuery उपयोग कर रहे थे, यह एक .css समारोह आप एक बार में एक से अधिक शैली को जोड़ने के लिए अनुमति देता है कि है:
$ ('element').css({'color':'red', 'border':'#555 solid thin'});
आप एक सीएसएस में सभी शैलियों डाल सकता है वर्ग
.foo { background:#000; color:#fff; ... }
और फिर className संपत्ति के लिए असाइन करें
// javascript
var your_node = document.getElementById('node_id');
your_node.className = 'foo'
कि केवल एक ही रीपेंट/पुनर्प्रवाहित
+1 निश्चित रूप से मेरे विचार में जाने के लिए दृष्टिकोण। – lonesomeday
-1 वास्तव में सवाल का जवाब नहीं देता है, अगर गुणों को पूर्ववत किया गया था, तो जाहिर है कि सीएसएस वर्ग जाने का रास्ता होगा, हालांकि, यदि आप कैल्क के लिए जेएस का उपयोग कर रहे हैं। मूल्य, तो यह काम नहीं करेगा। – Kayote
उत्प्रेरित करने चाहिए तुम्हें पता है, के लिए 'छुपा' तत्व की दृश्यता सेट कर सकता है तो शैलियाँ लागू है और फिर इसे फिर से दिखाई देने।
जो अभी भी एक रिफ्लो का कारण बनता है। – Tower
उपयोग:
document.getElementById('elemnt_ID').setAttribute('style','color:white; margin:5px;');
- 1. शैलियों एकाधिक वंशानुक्रम
- 2. भारी डोम मैनिप्लेशंस के दौरान रिफ्लो को निलंबित करने का कोई तरीका है?
- 3. एकाधिक गुणों से बचने के लिए स्थानीय चर असाइनमेंट
- 4. क्या Python में एकाधिक लाइनों के इंडेंटेशन को कम करने का कोई त्वरित तरीका है?
- 5. संयोजन: एकाधिक नेस्टेड फ़ोरैच से बचने
- 6. क्या इनलाइन शैलियों का उपयोग करने के लिए कोई तरीका है: विज़िट लिंक शैली?
- 7. एकाधिक सीएसएस फ़ाइलों को एक
- 8. एकाधिक FileInfo प्राप्त करने का तेज़ तरीका?
- 9. जीआईटी: एकाधिक रिपो पर प्रतिबद्ध करने का कोई तरीका?
- 10. कोडनिर्देशक ड्रॉपडाउन में सीएसएस शैलियों को कैसे लागू करें?
- 11. क्या ओपनिड को लागू करने का कोई आसान तरीका है?
- 12. सीएसएस एकाधिक चयन = हाँ
- 13. सी में एकाधिक वर्णों पर एक स्ट्रिंग को विभाजित करने का कोई तरीका है?
- 14. एकाधिक सबव्यूज़ व्यवस्थित करने का सबसे अच्छा तरीका क्या है?
- 15. कोड डुप्लिकेशन से बचने के लिए दूसरों को संभालने के लिए एक विधि का उपयोग करने का कोई तरीका है?
- 16. कुछ शैली अनुपालन को लागू करने के लिए बैच नामकरण
- 17. क्या एक हैशटेबल वैरिएबल में एकाधिक डेटा प्रकारों को स्टोर करने का कोई तरीका है?
- 18. बैच में एकाधिक पैरा कैसे पास करें?
- 19. विंडोज बैच फ़ाइलों में एम्पर्सेंड से बचने
- 20. iTunes कनेक्ट एकाधिक भाषाओं के लिए बैच अपलोड स्क्रीनशॉट
- 21. क्या रेलवे टाइमस्टैम्प फ़ील्ड को स्वचालित रूप से अपडेट करने से बचने का कोई तरीका है?
- 22. एंड्रॉइड विभिन्न स्क्रीन के लिए शैलियों को लागू करता है
- 23. मैं एक तत्व में एकाधिक एक्सएएमएल शैलियों को कैसे लागू कर सकता हूं?
- 24. Google एकाधिक साइन-इन - क्या URL में खाता निर्दिष्ट करने का कोई तरीका है?
- 25. एकाधिक भाषाओं के लिए एकाधिक SQLite डेटाबेस?
- 26. एकाधिक टीसीपी ग्राहकों को स्वीकार करने का सबसे अच्छा तरीका?
- 27. क्या यह एकाधिक संग्रह लोड करने के लिए ThenFetch() का उपयोग करने का सही तरीका है?
- 28. क्या JTree में एकाधिक जड़ों के लिए विस्तारक आइकन रखने का कोई तरीका है?
- 29. बंडल एकाधिक सीएसएस एक सीडीएन से सेवारत?
- 30. सामग्री के लिए एकाधिक एसडी कार्ड का निरीक्षण करने के लिए एंड्रॉइड 2.x में, कोई दस्तावेज तरीका है?
अच्छा दृष्टिकोण। बस सावधान रहें कि 'if' का पहला भाग किसी भी पहले से मौजूद वर्तमान रेखांकित शैलियों को ओवरराइड करेगा। 'PosElem.style.cssText + = newStyle' को सेट करना वैसे भी चाल करेगा। देखें [fiddle] (http://jsfiddle.net/gleezer/Ae4XR/1/) – Nobita
@ नोबिता अच्छा पकड़, धन्यवाद। फिक्स्ड – Basic
असल में यह हो सकता है कि अगर स्टेटमेंट को सिर्फ 'posElem.style.cssText + = newStyle' छोड़कर हटाया जा सकता है (फिर, अपडेट किया गया [fiddle] (http://jsfiddle.net/gleezer/Ae4XR/2/)) क्योंकि ऐसा लगता है कि शैलियों पहले से ही नहीं हैं, भले ही यह काम करता है। हालांकि यहां ब्राउज़र क्विर्क के बारे में निश्चित नहीं है। – Nobita