jQuery 选择首屏上方的图像

2024-05-25

我目前正在使用 jQuery 延迟加载插件来加载图像。我正在使用 javascript 来替换 src 和 data-original 属性。这会导致负载上出现轻微闪烁。我想知道是否有一种方法可以使用 jquery 仅选择折叠下方或折叠上方的图像,这样我就可以避免这种闪烁。

var $imgs = $("img:not(.nolazy)");
$imgs.each( function(){
    var imgSrc = $(this).attr("src");
    $(this).attr("data-original",imgSrc).attr("src","gray.gif");
});
$imgs.lazyload({
      effect : "fadeIn"
});

编辑:@Jason Sperske 很好的答案。这是我解决闪烁问题的代码:

var wH = $(window).height();
var $imgs = $("img:not(.nolazy)");
$imgs.each( function(){
    var imgPosition = $(this).offset();
    if(imgPosition.top > wH){
        var imgSrc = $(this).attr("src");
        $(this).attr("data-original",imgSrc).attr("src","gray.gif");
    }
});
$imgs.lazyload({
      effect : "fadeIn"
});

虽然没有用于此目的的内置选择器,但您可以迭代它们并查找大于窗口高度的位置值。本·皮克尔斯 http://benpickles.com/ (他的个人资料 https://stackoverflow.com/users/194664/benpickles)已将其实现到一个名为的过滤器中onScreen http://benpickles.github.com/onScreen/您可以像选择器一样使用它(请注意,它仍然会获取所有元素,但然后在尝试修改它们之前将列表配对,因此选择器不会更快(实际上稍慢),但减少的集合元素更新速度会更快)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 选择首屏上方的图像 的相关文章

随机推荐