jQuery LazyLoad替代方案(减去滚动条代码)
嘿,我想使用jQuery插件: 但是,与其触发窗口滚动上的事件,不如在 元素进入视野 (我的网站上没有滚动条,所以滚动条不是一个选项) 在我没有头发之前帮帮我jQuery LazyLoad替代方案(减去滚动条代码),jquery,html,css,lazy-loading,Jquery,Html,Css,Lazy Loading,嘿,我想使用jQuery插件: 但是,与其触发窗口滚动上的事件,不如在 元素进入视野 (我的网站上没有滚动条,所以滚动条不是一个选项) 在我没有头发之前帮帮我 编辑:好的,我让它工作了-有点-它似乎只在垂直方向上工作,并且只在显示溢出的情况下工作*您最好设置一个计时器并反复检查图像可见性。或者,您可以将tracker函数设置为公共方法,然后在发生变化时从外部调用它 将LazyLoad更改为如下内容: // ... var elements = this; if ("scroll" == sett
编辑:好的,我让它工作了-有点-它似乎只在垂直方向上工作,并且只在显示溢出的情况下工作*您最好设置一个计时器并反复检查图像可见性。或者,您可以将
tracker
函数设置为公共方法,然后在发生变化时从外部调用它
将LazyLoad更改为如下内容:
// ...
var elements = this;
if ("scroll" == settings.event) { // <-- you may want to remove conditional block
var tracker = function(event) { // <-- give it a name
var counter = 0;
elements.each(function() {
if ($.abovethetop(this, settings) ||
$.leftofbegin(this, settings)) {
/* Nothing. */
} else if (!$.belowthefold(this, settings) &&
!$.rightoffold(this, settings)) {
$(this).trigger("appear");
} else {
if (counter++ > settings.failurelimit) {
return false;
}
}
});
/* Remove image from array so it is not looped next time. */
var temp = $.grep(elements, function(element) {
return !element.loaded;
});
elements = $(temp);
};
(function repeat(){
tracker(); // <-- so you can use it here
if (elements.length)
setTimeout(repeat, 100); // <-- check every 100ms
})();
}
// ...
/。。。
var元素=这个;
if(“scroll”==settings.event){//关于头发问题…嗨,为这个欢呼。似乎这仍然是绑定窗口滚动方法的可见性?我的网站上没有滚动条。你可以删除事件绑定,只在那里定义tracker
函数。但是想法是一样的。请参阅我的更新。我删除了if(“scroll”)==settings.event){
行和相应的}
,但它什么也不做。我已经用$('img.link').lazyload()初始化了它
-没有错误,没有功能…我只是给你看了门,你需要穿过它。:)那么有效吗?哈哈,有点-我更新了我的问题。它只在溢出
未隐藏