2011-02-25 7 views
16

मैंने डिस्प्ले को किसी भी को प्रदर्शित करके और छिपाने की दृश्यता द्वारा जावास्क्रिप्ट में एक डीआईवी टैग अदृश्य बनाने में कामयाब रहा है। यह इस वर्ग के भी साथ प्राप्त किया जा सकता है:सीएसएस और जावास्क्रिप्ट में डीआईवी अदृश्य बनाएं

.invisible { 
    display: none; 
    visibility: hidden; 
} 

प्रदर्शन से कोई भी सुनिश्चित करेगा DIV बॉक्स रिक्त है, और दृश्यता वह दिखाई नहीं देता यह सुनिश्चित करेंगे छिपा हुआ। इस विधि के साथ समस्या तब होती है जब मेरे पास स्क्रॉल करने योग्य सामग्री के साथ स्क्रॉल करने योग्य DIVs या textareas होते हैं, जब आप डिस्प्ले सेट करते हैं: कोई नहीं, कुछ ब्राउज़र इन तत्वों के लिए स्क्रॉल स्थिति भूल जाएंगे। क्या डिस्प्ले प्रॉपर्टी का उपयोग किए बिना डीआईवी अदृश्य बनाने का कोई बेहतर तरीका है? मैं स्क्रॉल स्थिति रिकॉर्ड करने के लिए जावास्क्रिप्ट का उपयोग करने का प्रयास नहीं करना चाहूंगा और यदि संभव हो तो।

संपादित करें:

.invisible { 
    visibility: hidden; 
    position: absolute; 
    top: -9999px; 
} 

.visible { 
    visibility: visible; 
    position: static; 
} 

मैंने कोशिश की बाईं:

मैं आपकी मदद के साथ इसे हल करने में कामयाब रहे, मैं निम्नलिखित लागू किया -9999px, लेकिन यह IE में खड़ी स्क्रॉलबार फैलता है .. मैंने अपने टेक्स्टरेरा को एक और डीआईवी में भी लपेट लिया और उसमें दृश्यमान/अदृश्य शैलियों को लागू किया, क्योंकि टेक्स्टरेरा अन्यथा स्क्रॉल स्थिति खो देगा। मैंने अपने आईफोन पर क्रोम, फ़ायरफ़ॉक्स, आईई और सफारी में इसका परीक्षण किया। बस एक नोट, textarea के चारों ओर लिपटे डीआईवी एफएफ में मदद नहीं कर रहा था, और स्क्रॉलबार अभी भी रीसेट। लेकिन स्क्रोल करने योग्य डीआईवी अब ठीक हैं। आपकी सहायताके लिए धन्यवाद!

+1

बस एक अनुमान है, लेकिन इसे एक कंटेनर div में डाल देगा और प्रतिपादन ** ** ** div invisible ऐसा करता है? चूंकि यह एक अनुमान है, इसलिए मैं इसे एक उत्तर के रूप में पेश नहीं कर रहा हूं। – Dancrumb

+0

हम्म, मैंने सोचा कि मुझे आपके समाधान के साथ सफलता मिली है, लेकिन अब मुझे पता चला है कि एंड्रॉइड ब्राउज़र अभी भी ऊपर स्क्रॉल करता है ...:/ – Karussell

+0

आह, मेरे पास एंड्रॉइड नहीं है ... –

उत्तर

6

यह शायद काम करेगा:

.invisible { 
    position: absolute; 
    left: -9999px; 
} 

संपादित करें: मैं एचटीएमएल 5 बॉयलरप्लेट कोड में common helpers पर एक नज़र डालें चीजें गायब हो बनाने के अन्य तरीकों का पता लगाने के हैं।

+0

आप शायद इसे नकारात्मक बनाना चाहते हैं, इसलिए पृष्ठ का क्षैतिज स्क्रॉलबार नहीं लाता है। – icktoofay

+0

हां, ज़ाहिर है। धन्यवाद! –

19

यदि आप तत्व को अदृश्य होना चाहते हैं तो अभी भी visibility:hidden का उपयोग कर सकते हैं लेकिन अभी भी प्रस्तुत किया जा सकता है। display:none इसे पूरी तरह से हटा देगा और आपके द्वारा वर्णित स्क्रॉल व्यवहार का कारण बन जाएगा।

+4

'दृश्यता: छुपा हुआ 'अभी भी कारण होगा लेआउट में जगह लेने के लिए तत्व। मुझे लगता है कि यह ओपी की तलाश नहीं है क्योंकि वह 'डिस्प्ले से खुश है: स्क्रॉलबार के मुद्दों से कम नहीं। –

+0

हाँ, मुझे दृश्यता के बारे में पता है, लेकिन यदि आपका डीआईवी एक ब्लॉक है, तो वह अभी भी उस जगह को ले जाएगा। मेरे लिए –

+0

यह काम करता है। यह इतना अधिक जगह नहीं लेता है;) – Karussell

4

आप एक JQuery hide() विधि का उपयोग कर सकते हैं। $ ('# DivID')। छुपाएं(); या $ ('DivClass')। छुपाएं();

+0

असल में मैं उम्मीद कर रहा था कि जब तक मुझे यह नहीं करना है, लेकिन यह एक आसान विकल्प होगा, मैंने जो भी कोड लिखा है, उसे देखकर यह एक आसान विकल्प होगा :) –

2

लेआउट-वार, डिस्प्ले: कोई भी इसे प्रतिपादन पेड़ से और इस नेटहेवरल्ड लिंबो में पूरी तरह से बाहर नहीं ले जाता है। इसमें अब कोई परिभाषित आयाम या स्थिति नहीं है।

यदि आपको स्क्रॉल स्थिति के लिए कुछ प्लेसहोल्डर की आवश्यकता है, तो मैं प्लेसहोल्डर तत्व का उपयोग करने का सुझाव दूंगा। कुछ शून्य-ऊंचाई डीआईवी या शायद <a name="something""></a> काम करेंगे।

1

मैं बल्कि एक निश्चित ऊंचाई और चौड़ाई (ऊंचाई: 0; चौड़ाई: 0;) का उपयोग करता हूं। सीमाओं, पैडिंग और मार्जिन को खत्म करने के लिए मत भूलना।

2

आप समाधान को स्वीकार करने के लिए jQuery का उपयोग कर सकते हैं। आप पूरी तरह से छिपा/div को दिखाने के लिए चाहते हैं, तो यू का उपयोग कर सकते हैं:

$('#my_element').show() 
$('#my_element').hide() 

और अगर आपको लगता है कि आपके div अदृश्य हो और इसके अभी भी पेज में मौजूदा चाहते हैं, तो आप कुशल चाल का उपयोग कर सकते हैं:

$('#my_element').css('opacity', '0.0'); // invisible Maximum 
$('#my_element').css('opacity', '1.0'); // visible maximum 
संबंधित मुद्दे