मुझे नव निर्मित डोम तत्वों पर सीएसएस संक्रमण का उपयोग करने का कोई तरीका नहीं मिल रहा है।नए तत्वों पर सीएसएस संक्रमण
मान लें कि मेरे पास एक खाली HTML दस्तावेज़ है।
<body>
<p><a href="#" onclick="return f();">click</a></p>
</body>
मैं भी इस सीएसएस
#id {
-moz-transition-property: opacity;
-moz-transition-duration: 5s;
opacity: 0;
}
#id.class {
opacity: 1;
}
है और इस
function f() {
var a = document.createElement('a');
a.id = 'id';
a.text = ' fading in?';
document.getElementsByTagName('p')[0].appendChild(a);
// at this point I expect the span element to be with opacity=0
a.className = 'class';
// now I expect the css transition to go and "fade in" the a
return false;
}
जे एस लेकिन, जैसा कि आप http://jsfiddle.net/gwxkW/1/ पर देख सकते हैं जब आप तत्व तुरंत दिखाई देता है पर क्लिक करें।
जावास्क्रिप्ट और सीएसएस इंजन के बीच मैं एक timeout()
में वर्ग सेट मैं अक्सर परिणाम को पाने के करने की कोशिश, लेकिन मेरे लिए यह अधिक एक दौड़ लगता है। क्या सुनने के लिए कुछ विशिष्ट घटना है? मैंने document.body.addEventListener('DOMNodeInserted', ...)
का उपयोग करने की कोशिश की लेकिन यह काम नहीं कर रहा है।
मैं नव निर्मित तत्वों पर सीएसएस संक्रमण कैसे लागू कर सकता हूं?
'सेटटाइमआउट' कार्यों के साथ कक्षा का नाम सेट करना, लेकिन केवल तभी जब मेरे लिए देरी 6 एमएमएस या अधिक हो। एक अच्छा तरीका सुनिश्चित नहीं है। – pimvdb
हाँ, मैंने कुछ कम मिलीसेकंड मान (श्रेणी 0-10) की कोशिश की और ज्यादातर बार यह 5-6 एमएस के साथ काम करता है, लेकिन मुझे लगता है कि यह गलत दृष्टिकोण है। मुझे उम्मीद थी कि "इस पल से सीएसएस लागू होने पर" कुछ प्रकार की घटना से संबंधित है, लेकिन मुझे नहीं पता कि वे –
हैं http: // stackoverflow देखें।ऐसा करने के लिए एक साफ तरीके की चर्चा के लिए कॉम/प्रश्न/18564 9 42/क्लीन-वे-टू-प्रोग्रामेटिक-उपयोग-सीएसएस-संक्रमण-से-जेएस। – Nickolay