2009-07-21 13 views
71

display:none का अर्थ है कि तत्व को डोम के हिस्से के रूप में प्रस्तुत नहीं किया गया है, इसलिए यह तब तक लोड नहीं होता जब तक कि प्रदर्शन संपत्ति किसी अन्य चीज़ में परिवर्तित न हो जाए।jQuery प्रदर्शन का प्रदर्शन/छुपा क्यों करता है: दृश्यता के बजाय कोई भी नहीं: छुपा हुआ?

visibility:hidden तत्व लोड करता है, लेकिन यह नहीं दिखाता है।

jQuery के बीच स्विच करने के बजाय display:none का उपयोग अपने शो/छुपा कार्यों के लिए क्यों करता है? visibility:hidden और visibility:visible?

+1

@RyanErb क्या आपने वास्तव में प्रश्नों को पढ़ने (और समझने) की कोशिश की है या आप सिर्फ कीवर्ड से मेल खाते हैं? – TMS

उत्तर

65

क्योंकि display:none में, तत्व, सभी उद्देश्यों के लिए, अस्तित्व में रहता है - यह किसी भी स्थान पर कब्जा नहीं करता है। हालांकि, visibility:hidden में, ऐसा लगता है कि आपने तत्व में opacity:0 जोड़ा है - यह एक ही मात्रा में स्थान पर है लेकिन केवल अदृश्य कार्य करता है।

jQuery निर्माता शायद सोचा था कि पूर्व .hide() के लिए बेहतर फिट होगा।

+0

पर संक्षिप्त नहीं होता है इसलिए तकनीकों के बीच स्विच करने का एक तरीका होना चाहिए, क्योंकि यह कभी-कभी वांछनीय होता है ऑब्जेक्ट गणना करने के लिए आवश्यक स्थान पर कब्जा कर लिया है! –

10

दृश्यता: छुपा तत्व इस तरह से अदृश्य बनाता है कि यह अभी भी पृष्ठ पर स्थान का उपयोग करता है। प्रदर्शन: कोई भी तत्व के पास कोई स्थान नहीं है और पूरी तरह से चला गया है, जबकि यह अभी भी डोम में मौजूद है।

6

दृश्यता केवल तत्व को अदृश्य बनाता है, लेकिन यह अभी भी स्क्रीन पर स्थान ले लेगा।

18

visibility: hidden एक तत्व अदृश्य बनाता है लेकिन इसे पृष्ठ के लेआउट से नहीं हटाता है। यह एक खाली बॉक्स छोड़ देता है जहां तत्व था। display: none इसे लेआउट से हटा देता है, इसलिए यह पृष्ठ पर कोई भी स्थान नहीं लेता है, जो आमतौर पर लोग कुछ छिपाते समय चाहते हैं।

+0

लेकिन कुछ मामलों में दृश्यता वास्तव में उपयोगी है .. जैसे आप अपना लेआउट सुसंगत रखना चाहते हैं ... और यूआई छिपाने/शो –

1

Visibility:hidden बस तत्व को अदृश्य बनाएं लेकिन इसे डोम में लोड किया गया है, इसलिए यह लोड समय का उपभोग करता है। लेकिन Display:none तत्व लोड नहीं करता है।

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