我想使用延迟加载到我的网站,但有一个小问题:我用 JS 滚动内容(用 X px 为内容设置动画),所以我不使用滚动条。可悲的是,在这种情况下不会触发延迟加载。有任何想法如何制作这个吗?
我的网站水平滚动,所有内容div
-s 彼此靠近浮动,只有当前内容可见,所有其他内容都打开display: none;
这是我网站的一张不太专业的图片:我用黑色标记了可见区域,用红色标记了移动部件。
我想使用延迟加载到我的网站,但有一个小问题:我用 JS 滚动内容(用 X px 为内容设置动画),所以我不使用滚动条。可悲的是,在这种情况下不会触发延迟加载。有任何想法如何制作这个吗?
我的网站水平滚动,所有内容div
-s 彼此靠近浮动,只有当前内容可见,所有其他内容都打开display: none;
这是我网站的一张不太专业的图片:我用黑色标记了可见区域,用红色标记了移动部件。
我能想到的就是在内容滑动时挂钩,然后如果这是您的目标,则使用 AJAX 添加图像或整个内容。插件通常会专注于大多数用例,因此延迟加载可能对您不利。
我只想编写自己的简单延迟加载脚本:
$(function(){
$('img').each(function(){
var $this = $(this)
$this.data('origImg',$this.attr('src'))
$this.removeAttr('src') // or set a placeholder img
})
var $window = $(window), $container = $('#sliding_content')
window.lazyLoad = function () {
$container.find('img:not([src])').each(function(){
var $this = $(this), left = $this.offset().left
if (!(left < 0) && !(left > $window.width()))
$this.attr('src',$this.data('origImg'))
})
}
})
然后当 div 动画时,调用lazyLoad()
. 让我知道这是否适合您。:)
好的,几个小时后,我决定为此使用 JAIL。不是最好的解决方案,但总比没有好,因为我对 AJAX JAIL aka jQuery Asynchronous Image Loader很笨