我在这里遇到一个非常奇怪的问题: [推荐链接删除] 。第一行产品项与第二行中的项重叠。
砖石项目位于页脚上方的主页下方。如您所见,Chrome看起来与众不同。在Firefox中,它看起来不错。
以下是我在Chrome中的外观:http://clip2net.com/s/5LIRko
我的jQuery代码是:
jQuery(function($){
var $container = $('.woocommerce ul.products');
$container.masonry({
columnWidth:10,
gutterWidth: 15,
itemSelector: '.product-category'
});
});
是否存在影响行输出的css规则?
答案 0 :(得分:57)
问题是你的照片。在调用砖石时,您的图像尚未加载。因此,假设元素的高度不考虑图像的高度。
如果在图像已经缓存后刷新屏幕,您将看到它正确加载。如果您然后清除缓存并刷新,您将看到它们再次重叠。
四个五个选项:
jQuery(function($){
使用jQuery(window).on('load', function(){ var $ = jQuery;
,您将看到结果。答案 1 :(得分:13)
您需要在加载所有图像后启动Masonry。 如果您正在使用jQuery,请尝试:
var $container = $('#container');
// initialize Masonry after all images have loaded
$container.imagesLoaded( function() {
$container.masonry();
});
其他选项请参阅Masonry docs - http://masonry.desandro.com/layout.html#imagesloaded
答案 2 :(得分:2)
我用settimeout函数解决了这个问题。通过允许一秒左右通过(取决于正在下载的图像的#和文件大小),您可以先下载图像然后应用砌体。
$(document).ready(function(){
setTimeout(function() { masonry_go();masonry_go2();}, 1000);
});
$(window).resize(function()
{
// jQuery
$('.grid').masonry( 'destroy')
$('.grid2').masonry( 'destroy')
setTimeout(function() { masonry_go();masonry_go2();}, 1000);
});
function masonry_go(){
$('.grid').masonry({
// options
itemSelector: '.grid-item',
columnWidth: 300
});
}
function masonry_go2(){
$('.grid2').masonry({
// options
itemSelector: '.grid-item2',
gutter: 15,
columnWidth: 200
});
}
答案 3 :(得分:1)
答案 4 :(得分:1)
为使用CSS的图像添加最小高度。这样可以解决问题。
.image{ min-height: 250px; }
答案 5 :(得分:0)
窗口加载后加载砖石对我有用。
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
答案 6 :(得分:-1)
$(window).on('load',function(){ });
$(window).on('load',function(){
//code
});
//use load event instead of document.ready starting of jquery