2010-06-23 19 views
9

की स्क्रॉल बदलें मेरे पास एक निश्चित ऊंचाई और स्क्रॉलबार के साथ एक छिपी हुई div है। मैं स्क्रॉल स्थिति बदलना चाहता हूं, लेकिन ब्राउजर मुझे ऐसा नहीं करेगा, क्योंकि div छुपा हुआ है। scrollTop प्रॉपर्टी 0एक छिपे हुए div

इसके अलावा, मैं div back को दिखाना और छिपाना नहीं चाहता, जो झटके का कारण बनता है।

यदि कोई जानता है कि यह कैसे करना है, तो यह वास्तव में सहायक होगा।

धन्यवाद!

+0

जब आप इसे अनदेखा करते हैं तो क्या आप स्क्रॉल स्थिति बदल नहीं सकते? – NibblyPig

उत्तर

2

मेरा प्रश्न पूरा नहीं हुआ था। Div अपने आप पर छिपा नहीं है। यह एक कंटेनर div का हिस्सा है, जो छुपा हुआ है। आंतरिक div उनके माता-पिता के साथ प्रदर्शित करता है।

<div class="container hidden"> 
    <div id="some_div">Content</div> 
    <div id="my_div">I wanted to scroll this one</div> 
    <div id="other_div">Content</div> 
</div> 

हम jQuery का उपयोग कस्टम "ऑन शो" ईवेंट के साथ आया था।

तो अब हम ऐसा कर सकते हैं:

$('#my_div').bind('show', function() { 
    handle_scrollTopOffset(); 
}); 

जब शो घटना ही है, यह div के वर्ग .onShow कहते हैं। और jQuery.fn.show() फ़ंक्शन को उन बच्चों पर 'शो' ईवेंट ट्रिगर करने के लिए ओवरराइड किया गया है, जिनमें .onShow कक्षा है।

सभी को उनके सुझावों के लिए धन्यवाद। मुझे खेद है कि मैंने एक अपूर्ण सवाल प्रदान किया। मैं अगली बार सभी विवरण दूंगा।

+0

यह मुझे मिला सबसे अच्छा समाधान था। किसी ईवेंट के बजाय मैंने अपने बंद होने वाले फ़ंक्शन से स्क्रॉलटॉप() फ़ंक्शन को अपने शुरुआती एक में ले जाया। – stackers

2

div अस्थिर रोकने के लिए और लिपियों "display: none;" के बजाय छिपा आप स्थिति के लिए उपयोग कर सकते हैं <div> अनुपलब्धता ठीक करने के लिए:

.hidden { 
    position: absolute !important; 
    left: -9999px !important; 
    top: -9999px !important; 
} 
3

आप jQuery के डेटा का उपयोग करके स्क्रॉल बचा सकता है।

function SaveScroll(val) 
{ 
    $(the_element).data("Scroll", val); 
} 

function Show() 
{ 
    var element = $(the_element); 

    // prevent from showing while scrolling 
    element.css 
    ({ 
     position: "absolute", 
     top: "-50000px", 
     left: "-50000px", 
     display: "" 
    }); 

    // Scroll to the position set when it was hidden 
    element.scrollTop(element.data("Scroll")); 

    // show the element 
    element.css 
    ({ 
     position: "", 
     top: "", 
     left: "" 
    }); 
} 

यह


आप शायद सिर्फ visibility: hidden बजाय display: none उपयोग कर सकते हैं चाल कर सकता है। दृश्यता उस तत्व को रखती है जहां यह है। मेरा मानना ​​है कि यह opacity: 0 जैसा ही है, लेकिन यह एक क्रॉस-ब्राउज़र समाधान है।

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