图片懒加载实现原理
2018-03-19 11:31
295 查看
原理
将页面中的img标签src指向一张小图片或者src为空,然后定义data-src(这个属性可以自定义命名,我才用data-src)属性指向真实的图片。
原生javascriptvar num = document.getElementsByTagName('img').length;
var img = document.getElementsByTagName("img");
var n = 0; //存储图片加载到的位置,避免每次都从第一张图片开始遍历
lazyload(); //页面载入完毕加载可是区域内的图片
window.onscroll = lazyload;
function lazyload() { //监听页面滚动事件
var seeHeight = document.documentElement.clientHeight; //可见区域高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条距离顶部高度
for (var i = n; i < num; i++) {
if (img[i].offsetTop < seeHeight + scrollTop) {
if (img[i].getAttribute("src") == "") {
img[i].src = img[i].getAttribute("data-src");
}
n = i + 1;
}
}
}jquery实现原理var n = 0,
imgNum = $("img").length,
img = $('img');
lazyload();
$(window).scroll(lazyload);
function lazyload(event) {
for (var i = n; i < imgNum; i++) {
if (img.eq(i).offset().top < parseInt($(window).height()) + parseInt($(window).scrollTop())) {
if (img.eq(i).attr("src") == "") {
var src = img.eq(i).attr("data-src");
img.eq(i).attr("src", src);
n = i + 1;
}
}
}
}
将页面中的img标签src指向一张小图片或者src为空,然后定义data-src(这个属性可以自定义命名,我才用data-src)属性指向真实的图片。
原生javascriptvar num = document.getElementsByTagName('img').length;
var img = document.getElementsByTagName("img");
var n = 0; //存储图片加载到的位置,避免每次都从第一张图片开始遍历
lazyload(); //页面载入完毕加载可是区域内的图片
window.onscroll = lazyload;
function lazyload() { //监听页面滚动事件
var seeHeight = document.documentElement.clientHeight; //可见区域高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条距离顶部高度
for (var i = n; i < num; i++) {
if (img[i].offsetTop < seeHeight + scrollTop) {
if (img[i].getAttribute("src") == "") {
img[i].src = img[i].getAttribute("data-src");
}
n = i + 1;
}
}
}jquery实现原理var n = 0,
imgNum = $("img").length,
img = $('img');
lazyload();
$(window).scroll(lazyload);
function lazyload(event) {
for (var i = n; i < imgNum; i++) {
if (img.eq(i).offset().top < parseInt($(window).height()) + parseInt($(window).scrollTop())) {
if (img.eq(i).attr("src") == "") {
var src = img.eq(i).attr("data-src");
img.eq(i).attr("src", src);
n = i + 1;
}
}
}
}
相关文章推荐
- 图片延迟加载(lazyload)的实现原理
- 使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
- 图片延迟加载(lazyload)的实现原理
- js实现网页图片延时加载的原理和代码【转】
- web前端图片懒加载实现原理(二)
- lazyload实现原理(图片延迟加载)
- 滚动加载图片(懒加载)实现原理
- web前端图片懒加载实现原理
- 解析苹果的官方例子LazyTableImages实现图片懒加载原理
- javascript实现瀑布流动态加载图片原理
- (可视区域加载)图片懒加载实现原理
- 图片延迟加载(lazyload)的实现原理
- 图片延迟加载(lazyload)的实现原理
- Android 图片三级缓存加载框架原理解析与代码实现
- 转:图片延迟加载(lazyload)的实现原理
- 图片懒加载原理及实现
- (滚动加载图片)懒加载实现原理
- ImageLoader加载图片,实现原理。。。
- javascript实现瀑布流加载图片原理