我发布了video来解释我的问题。 抱歉帧速率慢。
当我缩小窗口太快时,Masonry jQuery插件似乎太慢而无法跟上,因此当浏览器调整太快时会破坏布局。有些项目属于页脚,看起来显然是错误的。
当我重新加载页面时,如视频中所示,布局恢复正常。
我认为问题在于smartresize
以下是演示页面: http://test.davewhitley.com/not-wp/isotope_test/index.php
此页面成功完成: http://tympanus.net/codrops/collective/collective-2/
javascript:
jQuery(document).ready(function($) {
var CollManag = (function() {
var $ctCollContainer = $('#ct-coll-container'),
collCnt = 1,
init = function() {
changeColCnt();
initEvents();
initPlugins();
},
changeColCnt = function() {
var w_w = $(window).width();
if( w_w <= 600 ) n = 2;
else if( w_w <= 768 ) n = 3;
else n = 4;
},
initEvents = function() {
$(window).on( 'smartresize.CollManag', function( event ) {
changeColCnt();
});
},
initPlugins = function() {
$ctCollContainer.imagesLoaded( function(){
$ctCollContainer.masonry({
itemSelector : '.ct-coll-item',
columnWidth : function( containerWidth ) {
return containerWidth / n;
},
isAnimated : true,
animationOptions: {
duration: 300
}
});
});
$ctCollContainer.colladjust();
$ctCollContainer.find('div.ct-coll-item-multi').collslider();
};
return { init: init };
})();
CollManag.init();
});
答案 0 :(得分:3)
我有同样的问题。我在windows resize上使用了bindResize
。我在他们的网站上找到了这个解决方案
bindResize
位于masonry.pkgd
$container.masonry({
itemSelector: '.container'
});
$(window).resize(function () {
$container.masonry('bindResize')
});
答案 1 :(得分:0)
顺便说一句好工作。
在某些方面,是的,布局有点疯狂。当然这只是浏览器处理百分比宽度+砌体的方式。下面的小小提示:
让你的容器变小,但你的图像更大。
.mycontainer {width:24%; ) .mycontainer img {width:101%;身高:自动; )
http://metafizzy.co/blog/beyonce-seamless-fluid-image-masonry/