jQuery Isotope Masonry : animation doesn't initiate until browser is resized (Chrome 27.0.1453.110)

无人久伴 提交于 2019-12-25 04:29:37

问题


I'm working on a jQuery Isotope implementation but the animation only seems to 'wake-up' once the browser is resized both on laptop and mobile. Perhaps my ordering is wrong? Here's the site that I'm working on:

http://rgbdrinks.squarespace.com/

If you are able to work out why the mobile implementation isn't great that would be awesome too but I realise that is probably a world of pain to get into.

Many many thanks for your help in advance,

Andrew


Here's the code:

<div id="container">

<div class="item"><div id="squarespace-slideshow-wrapper-1371031439" rel="51b847e2e4b0552c3a104be5" class="ss-slideshow-v2"></div><p>This is a test</p></div>
<div class="item"><img style="width: 150px;" src="/picture/drink%20pour%203.jpg?pictureId=18133348&amp;asGalleryImage=true&amp;__SQUARESPACE_CACHEVERSION=1370962041640" alt="" /></div>
<div class="item"><img style="width: 150px;" src="/picture/martini%20glass%20splash.jpg?pictureId=18133349&amp;asGalleryImage=true&amp;__SQUARESPACE_CACHEVERSION=1370962058097" alt="" /></div>
<div class="item"><img style="width: 150px;" src="/picture/tablecloth.jpg?pictureId=18133350&amp;asGalleryImage=true&amp;__SQUARESPACE_CACHEVERSION=1370962092184" alt="" /></div>
<div class="item"><div id="squarespace-slideshow-wrapper-1370943850" rel="51b6f18ae4b0877f36bb6468" class="ss-slideshow-v2"></div></div>
<div class="item"><div id="squarespace-slideshow-wrapper-1371031528" rel="51b84800e4b0552c3a104be6" class="ss-slideshow-v2"></div></div>
<div class="item"><div id="squarespace-slideshow-wrapper-1371031555" rel="51b8481be4b0552c3a104be7" class="ss-slideshow-v2"></div></div>
<div class="item"><div id="squarespace-slideshow-wrapper-1371031585" rel="51b8483ee4b0552c3a104be8" class="ss-slideshow-v2"></div></div>

</div>


<script src="http://rgbdrinks.squarespace.com/storage/isotope/js/jquery-1.7.1.min.js"></script>
<script src="http://rgbdrinks.squarespace.com/storage/isotope/js/jquery.isotope.min.js"></script>
<script src="http://rgbdrinks.squarespace.com/storage/isotope/js/fake-element.js"></script>


<script>

var $container = $('#container')

// initialize Isotope

$container.isotope({

  // options...

  resizable: false,
  itemSelector : '.item',
  animationEngine : 'best-available',

  // set columnWidth to a percentage of container width

  masonry: { columnWidth: $container.width() / 5 }

});

  // update columnWidth on window resize

  $(window).smartresize(function(){
    $container.isotope({

    // update columnWidth to a percentage of container width

    masonry: { columnWidth: $container.width() / 6 }

  });
});

</script>

回答1:


I just took a look at Andrew's site and noticed he had solved the problem by calling

jQuery(window).load(
    function()
    { jQuery
        ('#blog-wrap').isotope
            (
                { itemSelector: 'article', layoutMode : 'masonry' }
            );
    }
);

Of course you'll have to substitute #blog-wrap and article with your own classes and/or element names (and/or element IDs).

I've successfully used this method to solve the same problem with my site too.




回答2:


Well I had the exact same problem and I discovered it was being caused by Firebug. Once I closed firebug it worked fine.



来源:https://stackoverflow.com/questions/17064398/jquery-isotope-masonry-animation-doesnt-initiate-until-browser-is-resized-ch

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!