gpt4 book ai didi

javascript在滚动条上加载图像

转载 作者:行者123 更新时间:2023-12-03 08:18:12 26 4
gpt4 key购买 nike

我想仅使用 JavaScript 构建我自己的惰性图像

到目前为止,这是我的代码:

<img src="images1.jpg" data-src="images2.jpg" />

var body = document.body,
html = document.documentElement;

var height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight),
screen = screen.height;
img = document.getElementsByTagName("img");

window.addEventListener("scroll", function() {

for(var i = 0; i < img.length; i++) {

if (img[i].clientHeight >= height - screen) {

var data = img[i].getAttribute("data-src");
img[i].setAttribute('src','');
img[i].setAttribute("src", data);
}
}
});

问题是,图像 data-src 没有在滚动事件上执行到 src 属性中。

我希望它在图像在视口(viewport)前200px时执行。

如何做到这一点?我的代码有什么问题吗?我的 if 条件是否可能不正确?

最佳答案

你的代码工作得很好,不过你需要在最后添加 });

var body = document.body,
html = document.documentElement,
height = Math.max(
body.scrollHeight,
body.offsetHeight,
html.clientHeight,
html.scrollHeight,
html.offsetHeight),
screen = screen.height;
img = document.getElementsByTagName("img");

window.addEventListener("scroll", function() {
for(var i = 0; i < img.length; i++) {
if (img[i].clientHeight >= height - screen) {
var data = img[i].getAttribute("data-src");
img[i].setAttribute('src', data);
}
}
});
<img src="https://placeholdit.imgix.net/~text?txtsize=63&bg=FF6347&txtclr=ffffff&txt=Image-1&w=350&h=250" 
data-src="https://placeholdit.imgix.net/~text?txtsize=63&bg=63FF47&txtclr=ffffff&txt=Image-1&w=350&h=250" />
<img src="https://placeholdit.imgix.net/~text?txtsize=63&bg=FF6347&txtclr=ffffff&txt=Image-2&w=350&h=250"
data-src="https://placeholdit.imgix.net/~text?txtsize=63&bg=63FF47&txtclr=ffffff&txt=Image-2&w=350&h=250" />
<img src="https://placeholdit.imgix.net/~text?txtsize=63&bg=FF6347&txtclr=ffffff&txt=Image-3&w=350&h=250"
data-src="https://placeholdit.imgix.net/~text?txtsize=63&bg=63FF47&txtclr=ffffff&txt=Image-3&w=350&h=250" />
<img src="https://placeholdit.imgix.net/~text?txtsize=63&bg=FF6347&txtclr=ffffff&txt=Image-4&w=350&h=250"
data-src="https://placeholdit.imgix.net/~text?txtsize=63&bg=63FF47&txtclr=ffffff&txt=Image-4&w=350&h=250" />

我不明白你所说的“视口(viewport)前200px”是什么意思。你能解释得更好吗?如果您不希望所有图像同时更改,应考虑每个图像的 offetTopscrollTop 位置。 http://jsbin.com/xexeho/edit?html,js,output

关于javascript在滚动条上加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33843330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com