web性能优化之js图片懒加载
html
<div class="container">
<ul>
<li>
<div id="first" class="pic"><img src="" alt="" trueimg="./img/HBuilder.png" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000001</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000002</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000003</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000004</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000005</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000006</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000007</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000008</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000009</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000010</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000011</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000012</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000013</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000014</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000015</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000016</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000017</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000018</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000019</div>
</li>
<li>
<div class="pic"><img src="" alt="" trueimg="./img/timg.jpg" /></div>
<div class="txt">0000000000000000000000000000000000000000000000000000000000000000000020</div>
</li>
</ul>
</div>
css
* {
margin:;
padding:;
box-sizing: border-box;
} li {
margin-top: 10px;
border-bottom: 1px solid #000;
list-style: none;
height: 100px;
} .pic {
width: 200px;
padding: 10px;
height: 100px;
float: left;
background: url(img/timg.gif) no-repeat center center;
background-size: cover;
background-origin: content-box;
} .pic img {
opacity:;
display: none;
border: 1px solid #000;
width: 100%;
height: 100%;
} li:last-child {
margin-bottom: 10px;
} .txt {
height: 100px;
line-height: 100px;
overflow: hidden;
}
js
var imgList = document.querySelectorAll("img");
var len = imgList.length; function loadImg(curImg) { var truesrc = curImg.getAttribute("trueimg");
var oImg = new Image();
var curPar = curImg.parentNode; oImg.src = truesrc; oImg.onload = function() {
curImg.src = this.src;
curImg.style.display = "block";
curPar.style.background = "none";
fadeIn(curImg);
oImg = null;
}
curImg.isLoaded = true; } function fadeIn(curImg) {
var tar = 1;
var interval = 10;
var duration = 500;
var step = (tar / duration) * interval;
var curOp = parseFloat(getComputedStyle(curImg, null)["opacity"]); var timer = window.setInterval(function() {
if(curOp > 1) {
curImg.style.opacity = 1;
window.clearInterval(timer);
}
curOp += step;
curImg.style.opacity = curOp;
}, interval);
} function handleImg() {
for(var i = 0; i < len; i++) {
var curImg = imgList[i];
if(curImg.isLoaded) {
continue;
}
var curPar = curImg.parentNode;
var a = curPar.clientHeight + curPar.offsetTop;
var b = document.documentElement.clientHeight + document.documentElement.scrollTop;
if(a < b) {
loadImg(curImg);
}
}
} setTimeout(handleImg, 1000); window.onscroll = handleImg;
设置定时器延迟加载图片,优化网站打开时间,当图片出现在可见范围就加载图片,否则就不加载。
web性能优化之js图片懒加载的更多相关文章
- 【前端优化】js图片懒加载及优化
一.前言 为啥要对图片使用懒加载?我们首先来聊聊这个问题,对于页面来说架子啊速度影响着最大的就是图片,一张普通的图片可以达到4-5M的大小,而代码压缩也就只有几十KB.当页面图片过多的时候,页面加载速 ...
- 抛砖引玉:探讨网站性能优化之Javascript异步懒加载技术
懒加载技术是现在许多大型网站的都使用的提高网站性能的方式,它的核心思想是当用户想看页面某个区域时,再加载该区域的数据.这在一定程度上减轻了服务器端的压力,也加快了页面的呈现速度. 其实国内很多网站都用 ...
- JS图片懒加载
简介 当页面图片太多时,加载速度就会很慢.尤其是用2G/3G/4G访问页面,不仅页面慢,而且还会用掉很多流量.图片懒加载的原理就是将页面内所有需要加载的图片全部换成一张默认的图片(一般尺寸很小),只有 ...
- js 图片懒加载
图片懒加载(图片出现在可视区域再加载) 兼容性:兼容目前流行的全部浏览器,包括:兼容到IE6) 使用方法: 引入相应的js文件<script src="js/lazy.js" ...
- js图片懒加载(滚动加载)是否生效
一.什么是懒加载? 对未出现在视野范围内的图片先不进行加载,等到出现在视野范围才去加载. 二.为什么使用懒加载? 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 理论性知识大家都有自 ...
- js图片懒加载(滚动加载)判断是否生效
一.什么是懒加载? 对未出现在视野范围内的图片先不进行加载,等到出现在视野范围才去加载. 二.为什么使用懒加载? 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 理论性知识大家都有自 ...
- js——图片懒加载
<img class="js-lazy-image centered" src="./img/dog-running.svg" width="4 ...
- 原生js图片懒加载特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js原生图片懒加载 或 js原生图片预加载,html标签自定义属性
使用原声js来实现图片预加载,或图片懒加载,小伙伴们可以根据项目需要来结合vue或者是react来进行修改. 一.什么是图片懒加载或什么是图片预加载 当访问一个页面的时候,先把img元素或是其他元素的 ...
随机推荐
- luoguP2123 皇后游戏——微扰法的应用与排序传递性的证明
题目背景 还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
- IDA error of " positive sp value has been found"
问:用IDA静态分析,函数结尾出现 endp ; sp-analysis failed 用F5调不出伪代码,不知道是什么原因,请问有什么解决办法没有? 答:endp ; sp-analysis fai ...
- 【最小割】【网络流24题】【P2762】 太空飞行计划问题
Description W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,-,Em},和进行这些实验需要使 ...
- 关于ASP.NET MVC的Html.BeginForm()方法
http://zhidao.baidu.com/link?url=9j53URZJv2B9W-TPtQAaKCRbqIcYy2r3WNO0NDzciTON0EYj5Hhd3rl3UlIllK1CqOC ...
- Linux发不出分片包的问题分析
今日有个网络攻击模拟需求,要打分片的ip包,程序写好了,在开发机上验证也没问题,然后部署到沙盒环境之后不行,就是发不出来数据包,而不分片的数据包能够正常发送,定位过程如下 1.对比了两台机器/proc ...
- Python面向对象补充以及异常处理
面向对象相关内容 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(o ...
- 《xxx重大需求征集系统的》可用性和可修改性战术分析
阅读<大型网站技术架构:核心与案例分析>,第五,六章,结合<河北省重大需求填报系统>,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐述你的意 ...
- python---图表的使用
一:使用预览 二:插件使用来源 Highcharts(本次使用) ECharts 三:插件的使用 HighCharts的简单上手 (一)后台传递数据 getHchart方法获取用户数据(用户名,数据列 ...
- linux下常用的几个时间函数:time,gettimeofday,clock_gettime,_ftime
time()提供了秒级的精确度 1.头文件 <time.h> 2.函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒 ...
- NCPC2016-A-ArtWork
题目描述 A template for an artwork is a white grid of n × m squares. The artwork will be created by pain ...