前端性能优化之 —— 图片延迟加载(借鉴修改)
2017-02-03 00:00
260 查看
图片延迟加载这个是借鉴了别人写的小demo,原demo并不能多图并排,修改后可以多图同一横排显示。
感谢原文作者DiamondFsd 原文地址:https://my.oschina.net/u/2328699/blog/830990
代码:
感谢原文作者DiamondFsd 原文地址:https://my.oschina.net/u/2328699/blog/830990
代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> .lazy-img { height: 400px; background: #eee; overflow:auto; } img { width: 200px; height: 300px; border: 2px solid #eee; background: #ccc; } </style> </head> <body> <div class="lazy-img" id="lazy-img" style="width: 1000px;overflow-x:hidden;"> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> <img src="" data-src="img/index.jpg" /> </div> <script> var imgContainer = document.getElementById('lazy-img') var imgs = imgContainer.querySelectorAll('[data-src]') var imgHeightDomMapping = {} for(var i=0;i<imgs.length;i++){ imgHeightDomMapping[i]=imgs[i] } imgContainer.addEventListener('scroll', function() { showImage() }) function showImage() { var currentHeight = imgContainer.clientHeight + imgContainer.scrollTop // 滚动区域的高度 for(var i=0;i<Object.keys(imgHeightDomMapping).length;i++){ if(currentHeight >imgHeightDomMapping[i].offsetTop+ imgHeightDomMapping[i].clientHeight / 1.5) { // 判断当前图片是否已经显示 //将图片dom的 `src` 改为 `data-src` 的内容 console.info(imgHeightDomMapping[i]) imgHeightDomMapping[i].src = imgHeightDomMapping[i].getAttribute('data-src') } } } showImage() // 主动调用一次 加载首页的 </script> </body> </html>
相关文章推荐
- 图片延迟加载中使用table的兼容问题修改
- 第一次自己写jquery图片延迟加载插件,不通用,但修改一下还是可以使用到很多页面上的
- jquery插件实现图片延迟加载 -- jquery.lazyload
- Lazy Load 延迟加载图片的 jQuery 插件
- 名站技术分析 - 浅谈tudou.com首页图片延迟加载的效果
- 浅谈tudou土豆网首页图片延迟加载的效果
- JavaScript——图片延迟加载技术(ImageLazyLoad)
- 图片延迟加载并等比缩放,一个简单的JQuery插件。
- Lazy Load, 延迟加载图片的 jQuery 插件
- (转)jQuery插件:Image lazy loader图片延迟加载
- 网络图片延迟加载实现代码 超越jquery控件
- JS实例:网页上图片延迟加载的JS代码
- jquery.lazyload 实现图片延迟加载jquery插件
- ImagesLazyLoad 图片延迟加载效果
- ImagesLazyLoad 图片延迟加载效果
- jquery插件实现图片延迟加载 -- jquery.lazyload
- jquery 插件实现图片延迟加载效果代码
- 基于YUI3的淘宝式“图片延迟加载”组件
- jquery.lazyload 插件实现图片延迟加载
- (转)浅谈tudou.com首页图片延迟加载的效果