मुझे पता है, यह वास्तव में आपके प्रश्न का समाधान नहीं है, क्योंकि आप पूछते हैं
प्रदर्शन + अस्पष्टता
मेरा दृष्टिकोण एक अधिक सामान्य प्रश्न को हल करता है, लेकिन शायद यह पृष्ठभूमि की समस्या थी जिसे display
साथ में उपयोग करके हल किया जाना चाहिए opacity
।
मेरी इच्छा थी कि जब यह दिखाई न दे तो तत्व को रास्ते से हटा दिया जाए। यह समाधान वास्तव में है कि: यह बढ़ता रहता है दूर से बाहर तत्व है, और इस संक्रमण के लिए इस्तेमाल किया जा सकता है:
.child {
left: -2000px;
opacity: 0;
visibility: hidden;
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
}
.parent:hover .child {
left: 0;
opacity: 1;
visibility: visible;
transition: left 0s, visibility 0s, opacity 0.8s;
}
इस कोड में कोई ब्राउज़र उपसर्ग या पिछड़े संगतता हैक शामिल नहीं हैं। यह सिर्फ इस अवधारणा को दिखाता है कि तत्व को कैसे दूर ले जाया जाता है क्योंकि इसकी किसी भी अधिक आवश्यकता नहीं है।
दिलचस्प हिस्सा दो अलग-अलग संक्रमण परिभाषाएं हैं। जब माउस-पॉइंटर उस .parent
तत्व को मँडराता है जिस तत्व को .child
तुरंत लगाने की आवश्यकता होती है और तब अपारदर्शिता को बदल दिया जाएगा:
transition: left 0s, visibility 0s, opacity 0.8s;
जब कोई होवर नहीं होता है, या माउस-पॉइंटर को तत्व से दूर ले जाया जाता है, तो किसी को तब तक इंतजार करना पड़ता है जब तक कि ऑप्शन बदलने से पहले ही ऑप्शन ऑफ न हो जाए।
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
ऑब्जेक्ट को दूर ले जाना एक मामले में एक व्यवहार्य विकल्प display:none
होगा जहां सेटिंग लेआउट को नहीं तोड़ती है।
मुझे आशा है कि मैंने इस सवाल के लिए सिर पर नाखून मारा, हालांकि मैंने इसका जवाब नहीं दिया।