2011-05-27 8 views
7

मैं Isotope का उपयोग करना सीख रहा हूं और animate item sizes के बारे में लेखक के ब्लॉग पोस्ट में आया हूं।आइसोटोप में आइटम का आकार एनिमेट करना: पहला आइटम क्यों भरा हुआ है?

मैंने इसे लागू करने के लिए एक परियोजना के लिए लागू किया है। इसमें तीन लंबवत कॉलम होते हैं। प्रत्येक आइटम 1 9 6 पीएक्स x 70 पीएक्स है। जब आप किसी आइटम पर क्लिक करते हैं, तो यह 402px x 230px तक बढ़ जाएगा।

सभी आइटम ठीक से आकार बदलते हैं और आइसोटोप को लेआउट रीफ्रेश करने का कारण बनते हैं - पहले आइटम को छोड़कर।

पहले आइटम पर क्लिक करने से सभी बाद की सूची वस्तुओं को केवल एक लंबवत कॉलम में लाइन करने का कारण बनता है - भले ही वहां बहुत सारे कमरे हैं और आइटम पहले के चारों ओर बहते हैं।

सूची में किसी भी अन्य आइटम पर क्लिक करने से सही व्यवहार होता है। केवल पहला ही भद्दा है। क्या कोई यह देख सकता है कि इसका कारण क्या हो सकता है? http://joshrenaud.com/pd/testcase/testcase.html

कोड है कि संभालती है इस आकार बदलने इस तरह दिखता है:

$('.child').click(function(){ 
     var $this = $(this); 
     if ($this.hasClass('big')) { 
      tileStyle = { width: 196, height: 70}; 
     } 
     else { 
      tileStyle = { width: 402, height: 230}; 
     } 
     $this.children().children('.childDate').toggle(); 
     $this.children().children('.childDesc').toggle(); 
     $this.toggleClass('big'); 

     $this.find('.child-content').stop().animate(tileStyle); 

     $('#container').isotope('reLayout') 

    }); 
+0

मुझे यह इंगित करना चाहिए कि यह व्यवहार कोई फर्क नहीं पड़ता कि सूची में कौन सा आइटम पहला है। मेरे वास्तविक प्रोटोटाइप कोड में, मेरे पास विभिन्न मानदंडों से सूची का उपयोग करने के विकल्प हैं। सॉर्ट करने के बाद, जो भी आइटम पहले होता है, वह इस जीत में होगा। – Kirkman14

उत्तर

11

मैं एक छोटे से अधिक प्रयोग करने के बाद जवाब मिला

यहाँ मेरी परीक्षण का मामला है। आइसोटोप में कॉलमविड्थ नामक एक विशेषता है, जो दस्तावेज़ वैकल्पिक होने के लिए बाहर निकलते हैं क्योंकि स्क्रिप्ट पहले आइटम से कॉलम चौड़ाई निर्धारित कर सकती है।

हालांकि कॉलमविड्थ को मेरे .isotope() प्रारंभकर्ता में जोड़कर यह चीज़ सही काम करती है।

$('#container').isotope({ 
    masonry: { columnWidth : 206 } 
}); 

इसके अलावा, ऐसा लगता है कि columnWidth नहीं आइटम की चौड़ाई के समान है। यह आइटम की चौड़ाई है, साथ ही गटर (मार्जिन)। मेरे मामले में, कॉलमविड्थ 206: 1 9 6 (आइटम चौड़ाई) + 10 (गटर/मार्जिन) था।

+1

और थोड़ा और देखने के बाद, मुझे लगता है कि प्लगइन लेखक ने एक समान समस्या को यहां संबोधित किया है: https://github.com/desandro/isotope/issues/57 – Kirkman14

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