我创建了一个水平div,它包含大量图像但设置了宽度,因此您必须滚动才能看到所有图像。我试图实现延迟加载以加快加载时间,但我可以让它在前几个图像上工作,但不是其他图像只是保持灰色。
当我删除 white-space:nowrap; 时,我可以正常运行延迟加载,但是我丢失了我的单行div。
使用延迟加载使水平滚动div工作的好方法是什么?
<div class="galleryContainer container-fluid list-inline">
<div class="row ">
<?php
$files = glob("public/img/thumbnail/*.*");
$lFiles = glob("public/img/*.*");
for ($i=0; $i<count($files); $i++)
// ($i=0; $i<count($lFiles); $i++)
{
$image = $files[$i];
$Limage = $lFiles[$i];
// print $image ."<br />";
echo "<div class='img-responsive col-md-3'>";
echo '<div class="container" width: 90%">';
echo '<a href="../'.$Limage .'">
<img width:"300px" height="400px" height="class="lazy" data-original="../'.$image .'" alt="Mural Image"/></a>';
echo '</div>';
echo '</div>';
}
?>
</div>
</div>
<script>
jQuery(document).ready(function ($) {
$(function() {
$("img.lazy").lazyload();
container: $(".galleryContainer")
threshold : 200
effect : "fadeIn"
});
});
</script>
<script src="../public/scripts/jquery.lazyload.js"></script>
<script src="../public/scripts/jquery.scrollstop.js"></script>
这是我的CSS:
.galleryContainer {
margin-top: 2%;
width: 90%;
overflow-x:scroll;
overflow-y:hidden;
}
.profile {
margin-top: 5%;
}
}
.galleryContainer img {
height: 300px;
width: 400px;
}
.fullDrawing img{
height: 217.273px;
width:1440px;
}
.list-inline {
white-space:nowrap;
}
.galleryContainer > .row [class*="col-lg"], .galleryContainer > .row [class*="col-md"], .galleryContainer > .row [class*="col-md"] {
float:none;
display:inline-block;
white-space:normal;
vertical-align:top;
}
#main-content > .row {
overflow-x:scroll;
overflow-y:hidden;
white-space:nowrap;
}
答案 0 :(得分:0)
首先做一些小改动:
<img class="lazy" data-original="../'.$image .'" width:"300" height="400" alt="Mural Image">';
应该是
<img class="lazy" data-original="PATH" width="300" height="400" alt="Mural Image" src="PATH" style="display: inline;">
此外我从未在html中包含我的php脚本,但也许lazylload函数触发得太早。 查看浏览器加载的代码,如果功能正确触发,则元素应如下所示:
{{1}}
最后但并非最不重要的是,lazyload可能会出现图像链接问题,您应该使用原始图像进行测试。