2011-07-01 18 views
6

मेज़री आइटम 1000px चौड़े div में लपेटा गया है, मेरे पास jQuery के addClass() का उपयोग करके 2000x को div का आकार बदलने का एक बटन है, समस्या यह है कि चिनाई अतिरिक्त 1000px स्पेस को भरने के लिए आइटम को दोबारा नहीं बदलेगी, मुझे आकार बदलने का काम पता है क्योंकि ब्राउजर विंडो का आकार बदलना एक बदलाव का कारण बनता है।चिनाई प्लगइन: आकार का आकार बदलना

चिनाई:

$(function(){ 
    $('#container').masonry({ 
     // options 
     itemSelector : '.item', 
     columnWidth : 240 
    }); 
}); 

बटन:

$("a.button").toggle(function(){ 
    $(this).addClass("flip"); 
    $("div#container").fadeOut("fast", function() { 
     $(this).fadeIn("fast").addClass("resize"); 
    }); 

सीएसएस:।

width: 1000px; /* default */ 
width: 2000px !important; /* on button press */ 

मैं चल रहा की कोशिश की ('एक') सीएल एक ही बटन का उपयोग कर चिनाई समारोह पर ick, और यह सामान्य रूप से काम करता प्रतीत होता है लेकिन समस्या अभी भी वहां है।

कोई सलाह? मैं stumped हूँ:/

उत्तर

10

मुझे विश्वास है कि आपके पुन: आकार बटन पर क्लिक होने पर आपको चिनाई समारोह agian चलाने की जरूरत है।

$("a.button").toggle(function(){ 
    $(this).addClass("flip"); 
    $("div#container").fadeOut("fast", function() { 
    $(this).fadeIn("fast").addClass("resize"); 
    // run masonry again 
    $('#container').masonry({  
     itemSelector : '.item', 
     columnWidth : 240 
    }); 
}); 
+0

क्या आपके पास कोई तरीका है? बटन पर क्लिक होने पर मेरे पास डिफ़ॉल्ट चिनाई फ़ंक्शन चलाया गया था, लेकिन समस्या अभी भी वहां है, यह केवल आकार देने से पहले की तरह विरासत में है, जब तक कि मैं ब्राउज़र विंडो का आकार बदलता हूं। :/ – Naota

+0

एक आकर्षण की तरह काम किया, बहुत बहुत धन्यवाद! :) – Naota

+5

भी $ ("# कंटेनर |)। चिनाई (" रीलोड "); यह –

8
http://masonry.desandro.com/methods.html#reloaditems से

, .masonry('reloadItems') बुला (संभवतः नया) आइटम कि itemSelector से मेल खाते हैं और ईंटों का स्थान, हड़पने जाएगा, लेकिन बुला .masonry() सिर्फ अपनी वस्तुओं के सबसे हाल ही में आयामों के आधार पर आइटम का स्थान होगा।

-2

jQuery के साथ आकार बदलने ईवेंट सक्रिय करने का प्रयास करें:

$(window).trigger('resize'); 

यह मेरे लिए काम किया!

+1

यह रीलोड कार्यक्षमता को ट्रिगर करने का एक बहुत ही खराब तरीका है क्योंकि यह ब्राउज़र को कारण बन सकता है पुनर्वितरण और अन्य आकार बदलने वाले श्रोताओं को ट्रिगर करें जिन्हें होने की आवश्यकता नहीं है। उल्लेखनीय नहीं है क्योंकि चिनाई पर आकार बदलने वाले श्रोता को आकार दिया जा सकता है। – Soviut

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