html - 在再次调整窗口大小之前不会触发 masonry 布局

标签 html css layout jquery-masonry masonry

我不久前开始学习 masonry 。我想使用 Masonry 来布局我的网站,一切正常,但有一个问题。

我编写了一个调整窗口大小的代码。当有人调整窗口大小时, masonry 布局更改页面宽度的关键。我没有用 Masonry 做到这一点,所以我用这段代码做到了但是当我运行这段代码时,出现了问题,并且 Masonry 布局在下一个窗口调整大小时发生了变化。不知道哪里出了问题。

这是 jsfiddle 演示: DEMO

<script>
var doit;
window.onresize = function myFunction() {
clearTimeout(doit);
doit = setTimeout(function() {
    resizedw();
}, 1001);}


function resizedw(){
var w = window;
var d = document;
var e = d.documentElement;
var g = d.getElementsByTagName('body')[0];
var originalwidth = w.innerWidth || e.clientWidth || g.clientWidth; // sayfa boyutu
var orpagewidth = parseInt(originalwidth/200);

    var csswidth = $('#section_bg').css('width'); //returns 20px
var parsedcsswidth = parseInt(csswidth); //returns 20 div boyutu
var orcsswidth = parseInt(parsedcsswidth/200);

if (parsedcsswidth != originalwidth ){
if (parsedcsswidth > originalwidth ){ 
    $(".section_bg").animate({width:orpagewidth*200}, 500);}

if (parsedcsswidth < originalwidth ){ 
    $(".section_bg").animate({width:orpagewidth*200}, 500);}
}
}  
</script>

最佳答案

删除了 1200 像素的宽度,并向包含博客文章的元素添加了容器 ID,以用作 masonry 选择器。检查下面的 fiddle ,将所有 JS 替换为简单的 masonry 代码(它会为您进行调整大小计算)

$('#container').masonry({
   columnWidth: 190,
   gutter: 10,
   isAnimated: true,
   itemSelector: '.blogpost',
   isFitWidth: true
});

Fiddle

编辑:如果您希望博文居中,您可以将 isFitWidth 设置为 true,更新 fiddle 以显示这一点

关于html - 在再次调整窗口大小之前不会触发 masonry 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25646045/

相关文章:

android - 应对 Android 上的复杂布局

崩溃后的 JavaScript 屏幕位置

jquery 动画与翻译 y 和 fadeIn

html - 调整字符串长度

css - 似乎无法更改链接的颜色

Python kivy md 导航栏放置?

css - CSS div 布局和 IE7 的问题

html - 没有在 <head> 标签中插入 google 字体链接,但我仍然可以使用 Roboto?

javascript - 重定向到另一个页面并更改这些页面的 div 内容

javascript - 测试页面是否有水平滚动条(电脑和移动设备)