砌体在移动浏览器(chrome)上不起作用,并且仅在Chrome桌面版本上有效,如果我重新加载(ctrl + f5)页面
Masonry doesn't work on moblie browser (chrome) and only works on Chrome desktop version if I reload (ctrl+f5) the page, not on refresh (f5)
Masonry在Mooblie浏览器(chrome)上不起作用,在Chrome刷新(f5)时也不起作用。如果我在任何其他浏览器中加载页面,或者如果我完全重新加载页面而不使用其缓存 (ctrl+5),它确实可以正常工作。它也不适用于jsfiddle。
我知道它应该可以工作,因为 Masonry 网站本身确实可以在这些浏览器上运行。
我正在使用网格大小容器来定义列宽,并且具有不同维度的瓷砖:
.project {
width: $column_width;
}
.grid-sizer {
width: $column_width;
}
.project.oneXtwo {
width: $column_width;
height: (2* $column_width);
}
.project.twoXone {
width: (2* $column_width);
height: $column_width;
}
.project.twoXtwo {
width: (2* $column_width);
height: (2* $column_width);
}
砌体在页面加载时启动:
columnWidth = $(".project").width();
$(".project").height(columnWidth);
$(".twoXtwo").height(columnWidth * 2);
$(".oneXtwo").height(columnWidth * 2);
container.masonry({
columnWidth: ".grid-sizer",
itemSelector: '.project',
isAnimated:true,
});
这是代码的jsfiddle:http://jsfiddle.net/BartBurg/BtKHL/注意:在JSFIDDLE中,它也不能在任何其他浏览器上运行。
编辑:
如果我通过第二次访问网站(不是在刷新/重新加载时)重新加载页面,Firefox 也会出现这个问题
这个解决方案是牵强附会的,可能只会很少发生。
我正在使用 scssphp 来解析我的 .SCSS 文件服务器端。我在这件事上包含了我的 SCSS 和 JS 文件:
<!-- Javascript -->
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/masonry.pkgd.min.js"></script>
<script type="text/javascript" src="js/custom.js"></script>
<!-- Stylesheets -->
<link type="text/css" href="style.php/responsive.scss" rel="stylesheet" />
解决方案是在我包含任何Javascript之前包含样式表:
<!-- Stylesheets -->
<link type="text/css" href="style.php/responsive.scss" rel="stylesheet" />
<!-- Javascript -->
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/masonry.pkgd.min.js"></script>
<script type="text/javascript" src="js/custom.js"></script>
这很有趣,因为我在jQuery.ready()上启动了砖石:
$( function() {
...
initMasonry(container);
});
function initMasonry(container){
...
container.masonry({
columnWidth: ".grid-sizer",
itemSelector: '.project',
isAnimated:true
});
...
}
如果我用生成的样式表替换样式表.css,砌体也可以按预期工作。
我的疯狂猜测是,当Chrome和Firefox看到所有带有*.js和*.css的行都正确加载并且不会等待挂起的*.scss文件时,它们都会触发DOM就绪事件。
对我来说,为什么这适用于整页重新加载 (ctrl+f5) 而不是刷新 (f5) 是一个谜
相关文章:
- 数据表 AJAX 筛选器重新加载数据
- 如何在新加载的页面上执行(下拉)操作
- 根据上一个选项卡的选择器重新加载选项卡
- 获得“中止,因为不接受 0”并使用反应热加载器重新加载整页
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 如何为新加载的元素提供JQuery UI工具提示
- 如何在新加载的页面上使用相同的JavaScript代码(通过重定向)
- 检查IFRAME URL并重新加载(如果找到)-Javascript
- 使用PHP或Javascript检测页面刷新或新加载
- 砌体重新加载&reloadItems不起作用
- 检查脚本是否已经加载.如果没有,则异步加载
- 如何使javascript计时器重新加载
- 如何获取新加载的图像's width / naturalWidth
- 列出并调用firefox扩展中新加载的选项卡中的js函数
- 旋转器重新加载图像似乎在覆盖层后面
- onkeypress事件的奇怪行为页面重新加载如果"返回false;"是缺失的,否则它不会让我输入任
- AJAX调用后,新加载的CSS选择器对jQuery.ech()不可用
- jQuery砌体-砌体重新加载后调用方法
- 如何向所有查看器重新加载页面
- 如何打开子浏览器窗口,然后在新加载的子浏览器页面上执行脚本以单击其中的链接