问题
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&asGalleryImage=true&__SQUARESPACE_CACHEVERSION=1370962041640" alt="" /></div>
<div class="item"><img style="width: 150px;" src="/picture/martini%20glass%20splash.jpg?pictureId=18133349&asGalleryImage=true&__SQUARESPACE_CACHEVERSION=1370962058097" alt="" /></div>
<div class="item"><img style="width: 150px;" src="/picture/tablecloth.jpg?pictureId=18133350&asGalleryImage=true&__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