【问题标题】:Lazy Load horizontal scroll jQuery延迟加载水平滚动jQuery
【发布时间】:2023-03-24 22:00:01
【问题描述】:

所以,我正在为一位真正希望她的照片在浏览器窗口中显示时淡入淡出的客户制作这个摄影作品集网站。所以我做了一些研究,看起来 jquery 插件lazyload 会很完美。问题是她也真的希望她的照片在水平滚动上,似乎lazyload 只想在垂直滚动的网页上工作。我四处搜索,显然lazyload 应该使用此脚本在侧滚动 div 中工作:

 $("img").lazyload({
     container: $("#container")
 });

但它似乎没有做任何事情。

目前这是我的代码的样子:

<head>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/jquery.lazyload.min.js"></script>
<script>
$(function() {          
$("#content img.fadeload").lazyload({
    container: $("#content"),
    placeholder : "images/white.jpg",
    effect      : "fadeIn",
    effectspeed: 1000 
});
});
</script>
<style>
#content {
font-size: 100%;
position: absolute;
height: 574px;
width: 750px;
margin-top: -277px;
margin-bottom: 0px;
padding-left: 240px;
padding-top: 0px;
padding-bottom: 0px;
top: 50%;
overflow-x: scroll;
white-space: nowrap;
}
</style>
</head>
<body>
<div id="content">
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo01.jpg" alt="photo01"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo02.jpg" alt="photo02"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo03.jpg" alt="photo03"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo04.jpg" alt="photo04"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo05.jpg" alt="photo05"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo06.jpg" alt="photo06"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo07.jpg" alt="photo07"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo08.jpg" alt="photo08"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo09.jpg" alt="photo09"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo10.jpg" alt="photo10"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo11.jpg" alt="photo11"/>
    <img class="fadeload" src="images/white.jpg" data-original="images/liveStuffHotStuff/photo12.jpg" alt="photo12"/>
</div>
</body>

如果您想查看lazyload 插件在其当前状态下的功能(或缺少功能),这里是temporary link to the website in progress

任何关于让lazyload 以我想要的方式运行的建议或对图像淡入效果的另一种方法的推荐将不胜感激。非常感谢!

【问题讨论】:

  • 也许这会对你有所帮助...stackoverflow.com/questions/444730/…
  • 哦,是的,我想补充一点,我确实看到了那个 stackoverflow 条目,但它对我不起作用。那个和这个:appelsiini.net/projects/lazyload/enabled_wide_container.html 是我能找到的让lazyload 水平工作的仅有的两个资源,它们似乎都没有改变任何东西。
  • 您的意思是宽容器演示页面不适合您?哪个浏览器?
  • demo在firefox下可以,chrome不行,其他浏览器我还没测试过。但据我所知,演示中的代码在应用于网站时不起作用,我试图将它放在 chrome 或 firefox 中。另外,作为旁注,我宁愿让包含图像的 div 没有宽度属性,而是让滚动条位于浏览器的底部而不是 div 的底部。像这样:thefuhrl.com/jennaSpitz2/album01.html
  • 哪个版本的chrome?我对最新的 Windows 或 OSX chrome 没有问题。究竟什么不起作用?

标签: jquery fadein horizontal-scrolling lazy-loading


【解决方案1】:

您的图片缺少宽度和高度属性。没有它们,延迟加载将无法正常工作。在不知道宽度和高度的情况下,当document.ready 事件触发时,浏览器无法知道图像在布局中的位置。正确的图像标签如下所示:

<img class="lazy" src="img/grey.gif" data-original="img/example.jpg"  width="640" heigh="480">

【讨论】:

  • 只需删除容器参数。与演示页面中的方法相同:appelsiini.net/projects/lazyload/enabled_wide.html 如果答案解决了问题,则将其标记为已接受。
  • 向图像添加高度和宽度属性有效!现在,如果我想做“溢出:隐藏;”并省略 div 上的宽度属性,以便水平滚动条位于浏览器窗口上 有没有办法让延迟加载在这种情况下工作?就像不是添加脚本 ({ container: $("#content"), }) 而是像 ({ container: $("body") }) 可能吗?这是我正在谈论的情况的一个示例:thefuhrl.com/jennaSpitz2/album01.html
  • 啊,我从来没有遇到过“宽”演示的页面。万分感谢!你太棒了!
  • 所以它在计算机上运行良好,尽管由于某种原因在 Firefox 上有点滞后。但在移动设备上它的疯狂滞后。在图像开始淡入之前有时需要 10 秒或更长时间。有没有一种简单的方法来优化移动设备的延迟加载?如果没有,有没有办法在被 ios、android 或其他移动操作系统访问时关闭延迟加载?以下是使用延迟加载但在移动设备上遇到问题的网站的当前化身:thefuhrl.com/jennaSpitz/album01.html
  • 浏览器加载图片后开始淡入。您的移动连接很可能比桌面连接慢。
猜你喜欢
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多