jquery

2013-01-02 41 views
7

के साथ इसकी वास्तविक ऊंचाई के बजाय तत्व की दृश्य ऊंचाई प्राप्त करें यह पोस्ट this one से संबंधित है। कृपया इसे पढ़ने पर भी विचार करें। :-)jquery

जिस पोस्ट से मैंने लिंक किया था, मुझे लगा कि मेरी समस्या का हल एक लिंक के लक्ष्य को बदलना होगा यदि div की दृश्य ऊंचाई किसी अन्य div की तुलना में अधिक है। मेरे लेआउट में, मैं जिन सभी divs का जिक्र कर रहा हूं उनमें 1100px की ऊंचाई है। लेकिन यह वह नहीं है जिसे मैं प्राप्त करना चाहता हूं। मैं चाहता हूं कि स्क्रिप्ट उस div की ऊंचाई प्राप्त करे जो वर्तमान में विज़िटर को दिखाई दे, न कि इसकी असली ऊंचाई। JQuery का उपयोग कर ऐसा करने का कोई तरीका है?

अग्रिम धन्यवाद!

+1

आपने क्या प्रयास किया है? फ़ंक्शन 'jQuery.offset()' की जांच करें, व्यूपोर्ट जानकारी और तत्व ऊंचाई के साथ-साथ आप इसे समझने में सहायता करेंगे। बस जोड़ और घटाव का मामला। – Pablo

+0

क्या आपने कभी यह पता लगाया है? मैं वही काम करने की कोशिश कर रहा हूं, और मुझे कोई भाग्य नहीं है। – JacobTheDev

उत्तर

1

व्यूपोर्ट डीआईवी की सामग्री को अन्य डीवी के साथ लपेटें। लक्षित करें कि सभी सामग्री की ऊंचाई को पढ़ने के लिए डीआईवी:

JQuery: $ ('div # content') ऊंचाई();

लेआउट:

<div id="viewport"> 
    <div id="contents">...all your div contents...</div> 
</div> 

आशा इस मदद करता है। शुभ लाभ।

-1

क्या आपको एक निश्चित 1100 पीएक्स ऊंचाई का उपयोग करना है? क्योंकि आप अधिकतम ऊंचाई भी निर्दिष्ट कर सकते हैं: 1100 पीएक्स; और ऊंचाई: 100%; क्या आप द्वारा

$('.divclass').height(); 
7

div के अंदर डाल करने के लिए आप निश्चित रूप से वर्तमान ऊंचाई प्राप्त कर सकते हैं चाहते हैं पर निर्भर करता है आप क्या कर सकते अपनी मूल कंटेनर और के शीर्ष करने के तत्वों स्थान लेने तो शून्य से यह माता-पिता से है कंटेनर ऊंचाई। इससे आपको तत्व की दृश्य ऊंचाई मिल जाएगी।

$('#container').height() - $('#overflow').position().top 

यहाँ एक fiddle इस दिखा है।

+0

मैंने पहले कभी भी ऑफसेट नहीं किया था, इसलिए सबसे पहले आपके उत्तर के लिए धन्यवाद, जिसने मुझे कुछ सिखाया है। :-) मैंने आपकी विधि का उपयोग करके कुछ करने की कोशिश की, लेकिन दुर्भाग्य से यह काम नहीं किया। मान लीजिए कि मेरे पास 3 divs हैं जो सभी 1100px लंबा हैं। मेरा पूरा दस्तावेज़ इस प्रकार 3300 पीएक्स उच्च है। मैं जो करना चाहता था वह अंतिम div और दस्तावेज़ के शीर्ष के बीच की दूरी की गणना करता है और फिर परिणाम के अनुसार मेरे लिंक का लक्ष्य बदलता है। तो: चेतावनी (3300 - $ ('# div3') ऑफसेट() शीर्ष) –

+0

जब मैं दस्तावेज़ के शीर्ष पर था, तो यह 1100 लौटा, जो मुझे उम्मीद थी। लेकिन फिर मैंने थोड़ा सा स्क्रॉल किया, स्क्रिप्ट लॉन्च की, लेकिन यह अभी भी 1100 लौटा। मैंने सोचा कि यह मुझे एक नंबर देगा जो 1100 से अधिक होगा, लेकिन ऐसा नहीं हुआ। तो मुझे लगता है। ऑफसेट ऐसा नहीं करता जो मैंने सोचा था और यह स्क्रॉल के वर्तमान स्थान के अनुकूल नहीं है। : -/ –

+0

@ टॉमस। अपनी चेतावनी के लिए '$ (विंडो) .scrollTop()' जोड़ें और यह आपको वह देगा जो आप चाहते हैं। [fiddle] (http://jsfiddle.net/bplumb/mbZby/4/) –