2012-09-30 9 views
8

मुझे jQuery के फ़ंक्शन .resize() का उपयोग करके विंडो आकार बदलने में थोड़ी सी समस्या है। मैं जानना चाहता हूं कि कौन सा आयाम बड़ा/छोटा हो रहा है - चौड़ाई या ऊंचाई। क्योंकि अगर मैं सिर्फ दो शर्तों डाल मैं इस की जरूरत है - अगर चौड़ाई 50px div से भी बड़ा के लिए है और यदि ऊंचाई, 50px div से भी बड़ा के लिए हैjQuery - कैसे पता चलेगा कि विंडो चौड़ाई/ऊंचाई या दोनों में आकार बदल रही है या नहीं?

// (pseudocode) 
if width = div.width + 50px 
    width = something 
if height = div.height + 50px 
    height = something 
तो

सिर्फ एक शर्त पर काम कर रहा है और मैं केवल चौड़ाई आकार बदल सकते हैं या ऊंचाई।

मुझे कैसे पता चलेगा कि आकार में कौन सा आयाम बदल रहा है या दोनों हैं?

+2

आप अपने कोड है कि आप की कोशिश की है क्यों पोस्ट नहीं करें।? –

उत्तर

19

चर में पिछले विंडो आकार मानों को सहेजकर।

var h = $(window).height(), w = $(window).width(); 
$(window).resize(function(){ 

    var nh = $(window).height(), nw = $(window).width(); 
    // compare the corresponding variables. 
    h = nh; w = nw; // update h and w; 
}); 
3

पिछले आकार को सहेजें और इसके साथ तुलना करें, हर बार आकार में परिवर्तन।

पूर्व के लिए:

var prevW = -1, prevH = -1; 

$(document).ready(function() { 

    // ... other stuff you might have inside .ready() 

    prevW = $(window).width(); 
    prevH = $(window).height(); 
}); 

$(window).resize(function() { 
    var widthChanged = false, heightChanged = false; 
    if($(window).width() != prevW) { 
     widthChanged = true; 
    } 
    if($(window).height() != prevH) { 
     heightChanged = true; 
    } 

    // your stuff 

    prevW = $(window).width(); 
    prevH = $(window).height(); 

}); 

डेमो:http://jsfiddle.net/44aNW/

+0

आपको एक से अधिक बार काम करने के लिए = true के बाद पिछली चौड़ाई/ऊंचाई को सहेजने की आवश्यकता है। –

+0

आह, यह सही है। अब तय – techfoobar

+0

यह पूरी तरह से काम नहीं करता है। यह स्थिति के लिए केवल दूसरे के लिए काम करता है और दोनों के लिए नहीं। – user1257255

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