2015-06-08 17 views
6

के अंत तक तत्व पर प्रभाव डालने के लिए किसी संपत्ति को रोकना हमारे पास होवर पर कुछ डेटा दिखाने के लिए कुछ बॉक्स हैं। इसलिए, जब हम एक तत्व पर माउस ले जाते हैं, तो इसे विस्तारित करना चाहिए, अन्य तत्वों के सामने जाना चाहिए, और छुपा डेटा दिखाएं।सीएसएस: संक्रमण

मैं कुछ इस तरह किया:

box:hover { 
    z-index: 50; 
} 

लेकिन वहाँ एक समस्या है, जब हम माउस को दूसरी बाहरी सफेद जगह पर ले जाते हैं, तो z-index मूल्य पर वापस, दूसरों के समान ही। तो यह दिखाई देता है कि पिछला तत्व अगले स्तर की तुलना में कम परत में है।

संक्रमण के अंत तक, संपत्ति को लागू करने के लिए कैसे रोकें?

यहां मेरा jsFiddle है। एक तत्व पर होवर करने की कोशिश करें, अपने माउस को तत्व से बाहर ले जाएं और अन्य तत्वों की पृष्ठभूमि-छवि संक्रमण समाप्त होने से पहले हमारे आच्छादित तत्व के सामने होगी।

अद्यतन: यह समस्या का स्क्रीन शॉट है। यह तब होता है जब हम तत्व पर असहज करते हैं। background-image अन्य तत्वों के हमारे आच्छादित तत्व के सामने आते हैं।

Our problem! Check the jsFiddle link above

+0

यह मेरी ब्राउज़र (सफारी मैक) के एक विरूपण साक्ष्य हो सकता है लेकिन मैं इस मुद्दे आप का वर्णन नहीं मिलता है। हालांकि, क्रोम के साथ, मुझे लाल पृष्ठभूमि मिलती है, इसलिए मुझे संदेह है कि सीएसएस जीता जा सकता है। –

+0

@MAGNAWS स्थिति – mrReiha

+0

बेहतर स्थिति का वर्णन करने के लिए स्क्रीन शॉट जोड़ा गया यह मेरे ब्राउज़र (मैक पर सफारी, क्रोम या फ़ायरफ़ॉक्स) पर नहीं होता है। हालांकि, सफारी मुख्य बॉक्स पृष्ठभूमि को सफेद के रूप में प्रदर्शित करता है। मुझे संदेह है कि सीएसएस टूट गया है। "टूटा" से मेरा मतलब "गलत" नहीं है। यह एक अनिर्धारित क्षेत्र में हो सकता है; जहां विभिन्न ब्राउज़र अलग-अलग प्रतिक्रिया करते हैं। मैं इन मामलों में आमतौर पर क्या करता हूं, संभवतः सबसे सरल रूप में पुन: सक्रिय करने का प्रयास करता है; कभी-कभी प्रक्रिया में कुछ फैंसी छोड़ना (यह एक अच्छा प्रभाव है, बीटीडब्ल्यू)। –

उत्तर

2

z-index के लिए भी एक संक्रमण जोड़े, लेकिन एक देरी डालने केवल जब .box सामान्य स्थिति में है।

तो z-index हॉवर पर istantly बदल जाएगा, जबकि विपरीत कार्रवाई पर ("unhover") z-index अपनी प्रारंभिक मूल्य ले जाएगा लेकिन 0.5 के बाद ही सेकंड कर

(अपने विस्तार के प्रभाव की अवधि 0.4 सेकंड है)
.box { 
    ... 
    z-index: 1; 
    -webkit-transition: z-index 0s .5s; 
     -moz-transition: z-index 0s .5s; 
      transition: z-index 0s .5s; 
} 

.box:hover { 
    -webkit-transition: z-index 0s 0s; 
     -moz-transition: z-index 0s 0s; 
      transition: z-index 0s 0s; 
    z-index: 50; 
} 

उदाहरण: http://jsfiddle.net/yjg2oach/

+0

आपका संपादित पहेली (दूसरा वाला) सही काम करता है क्रोम में, लेकिन फ़ायरफ़ॉक्स पर, यह विफल रहता है :( – mrReiha

+0

@mrRehaha ऐसा इसलिए है क्योंकि प्रारंभिक जेड-इंडेक्स मान .box से गुम है (और फ़ायरफ़ॉक्स के संस्करण के आधार पर, '-मोज़-' उपसर्ग भी आवश्यक हो सकता है) – fcalderan

+0

वाह , आश्चर्यजनक लगता है। मुझे नहीं पता था कि 'जेड-इंडेक्स' एनिमेटेबल है। बहुत धन्यवाद। – mrReiha

1

अपने .box समूह के लिए एक संक्रमण विशेषता जोड़ें।

.box { 
    float: left; 
    position: relative; 
    width: 100px; 
    height: 100px; 
    margin: 10px; 
    margin-bottom: 35px; 
     transition: .4s; 
} 

फिक्स्ड fiddle

+0

यह क्रोम पर सही काम करता है, लेकिन फ़ायरफ़ॉक्स पर, अभी भी समस्या है :( – mrReiha

संबंधित मुद्दे