电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JS圖片懶加載技術實現過程解析

瀏覽:117日期:2024-04-28 16:25:46

懶加載技術

懶加載(LazyLoad)是前端優化的一種有效方式,極大的提升用戶體驗,圖片一直是頁面加載的流浪大戶,現在一張圖片幾兆已經是很正常的事,遠遠大于代碼的大小。

原理:頁面加載后只讓文檔可視區內的圖片顯示,其它不顯示,隨著用戶對頁面的滾動,判斷其區域位置,生成img標簽,讓到可視區的圖片加載出來。

所用相關技術:給img加屬性 (例如data-src),將圖片的地址賦值給他,這樣就生成img標簽后再把data-src的值賦給img的src(通過dataset.src或者getAttribute(’src’),再賦值給img.setAttribute(’src’))。

jqueryLazyload方式

<!DOCTYPE html><html> <head> <meta charset='UTF-8'> <title></title> <style type='text/css'> *{margin:0px;padding: 0; } .wrap{overflow: hidden;width:915px;background:#2d2d2d;margin:50px auto;border-radius:10px;/*font-size:0px;*/ } .wrap img{float:left; display: block;width:280px;height:180px;margin:10px 10px;border:2px solid #7c7c7c;border-radius:10px; } </style> </head> <body><div class='wrap'> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/1.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/2.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/3.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/4.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/5.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/6.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/7.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/1.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/2.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/3.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/4.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/5.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/6.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/7.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/1.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/2.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/3.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/4.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/5.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/6.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/7.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/1.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/2.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/3.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/4.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/5.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/6.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/7.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/1.jpg' /> <img src='http://www.hdgsjgj.cn/bcjs/js/images2/2.jpg' /> <script src='http://www.hdgsjgj.cn/bcjs/js/jquery-1.11.1.min.js'></script> <script src='http://www.hdgsjgj.cn/bcjs/js/lazyload.js'></script> <script> $('img').lazyload({placeholder :'images2/loading.gif', //用圖片提前占位// placeholder,值為某一圖片路徑.此圖片用來占據將要加載的圖片的位置,待圖片加載時,占位圖則會隱藏 effect: 'fadeIn', // 載入使用何種效果// effect(特效),值有show(直接顯示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn threshold: 200, // 提前開始加載// threshold,值為數字,代表頁面高度.如設置為200,表示滾動條在離目標位置還有200的高度時就開始加載圖片,可以做到不讓用戶察覺 // event: ’click’, // 事件觸發時才加載// event,值有click(點擊),mouseover(鼠標劃過),sporty(運動的),foobar(…).可以實現鼠標莫過或點擊圖片才開始加載,后兩個值未測試… //container: $('#container'), // 對某容器中的圖片實現效果// container,值為某容器.lazyload默認在拉動瀏覽器滾動條時生效,這個參數可以讓你在拉動某DIV的滾動條時依次加載其中的圖片 //failurelimit : 10 // 圖片排序混亂時 // failurelimit,值為數字.lazyload默認在找到第一張不在可見區域里的圖片時則不再繼續加載,但當HTML容器混亂的時候可能出現可見區域內圖片并沒加載出來的情況,failurelimit意在加載N張可見區域外的圖片,以避免出現這個問題. }); </script> </div> </body></html>

echo.js方式

echo.js是一款非常簡單實用輕量級的圖片延時加載插件,如果你的項目中沒有依賴jquery,那么這將是個不錯的選擇,50行代碼,壓縮后才1k。當然你完全可以集成到自己項目中去。

下載地址:https://github.com/helijun/helijun/tree/master/plugin/echo

<style>.demo img { width: 736px; height: 490px; background: url(images/loading.gif) 50% no-repeat;}</style>

<div class='demo'> <img src='http://www.hdgsjgj.cn/bcjs/images/blank.gif' data-echo='images/big-1.jpg'></div>

<script src='http://www.hdgsjgj.cn/bcjs/js/echo.min.js'></script><script>Echo.init({ offset: 0,//離可視區域多少像素的圖片可以被加載 throttle: 0 //圖片延時多少毫秒加載}); </script>

說明:blank.gif是一張背景圖片,包含在插件里了。圖片的寬高必須設定,當然,可以使用外部樣式對多張圖片統一控制大小。data-echo指向的是真正的圖片地址。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 合肥角钢_合肥槽钢_安徽镀锌管厂家-昆瑟商贸有限公司 | 车牌识别道闸_停车场收费系统_人脸识别考勤机_速通门闸机_充电桩厂家_中全清茂官网 | 在线PH计-氧化锆分析仪-在线浊度仪-在线溶氧仪- 无锡朝达 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 泰安办公家具-泰安派格办公用品有限公司| 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 散热器-电子散热器-型材散热器-电源散热片-镇江新区宏图电子散热片厂家 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | BAUER减速机|ROSSI-MERSEN熔断器-APTECH调压阀-上海爱泽工业设备有限公司 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 石家庄小程序开发_小程序开发公司_APP开发_网站制作-石家庄乘航网络科技有限公司 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 钢丝绳探伤仪-钢丝绳检测仪-钢丝绳探伤设备-洛阳泰斯特探伤技术有限公司 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 广东机电安装工程_中央空调工程_东莞装饰装修-广东粤标建设有限公司 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 雄松华章(广州华章MBA)官网-专注MBA/MPA/MPAcc/MEM辅导培训 | 东莞注册公司-代办营业执照-东莞公司注册代理记账-极刻财税 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 无缝方管|无缝矩形管|无缝方矩管|无锡方管厂家| 收录网| 净水器代理,净水器招商,净水器加盟-FineSky德国法兹全屋净水 | 加盟店-品牌招商加盟-创业项目商机平台 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 高压微雾加湿器_工业加湿器_温室喷雾-昌润空气净化设备 |