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图片懒加载的更多相关文章

  1. 【前端优化】js图片懒加载及优化

    一.前言 为啥要对图片使用懒加载?我们首先来聊聊这个问题,对于页面来说架子啊速度影响着最大的就是图片,一张普通的图片可以达到4-5M的大小,而代码压缩也就只有几十KB.当页面图片过多的时候,页面加载速 ...

  2. 抛砖引玉:探讨网站性能优化之Javascript异步懒加载技术

    懒加载技术是现在许多大型网站的都使用的提高网站性能的方式,它的核心思想是当用户想看页面某个区域时,再加载该区域的数据.这在一定程度上减轻了服务器端的压力,也加快了页面的呈现速度. 其实国内很多网站都用 ...

  3. JS图片懒加载

    简介 当页面图片太多时,加载速度就会很慢.尤其是用2G/3G/4G访问页面,不仅页面慢,而且还会用掉很多流量.图片懒加载的原理就是将页面内所有需要加载的图片全部换成一张默认的图片(一般尺寸很小),只有 ...

  4. js 图片懒加载

    图片懒加载(图片出现在可视区域再加载) 兼容性:兼容目前流行的全部浏览器,包括:兼容到IE6) 使用方法: 引入相应的js文件<script src="js/lazy.js" ...

  5. js图片懒加载(滚动加载)是否生效

    一.什么是懒加载? 对未出现在视野范围内的图片先不进行加载,等到出现在视野范围才去加载. 二.为什么使用懒加载? 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 理论性知识大家都有自 ...

  6. js图片懒加载(滚动加载)判断是否生效

    一.什么是懒加载? 对未出现在视野范围内的图片先不进行加载,等到出现在视野范围才去加载. 二.为什么使用懒加载? 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 理论性知识大家都有自 ...

  7. js——图片懒加载

    <img class="js-lazy-image centered" src="./img/dog-running.svg" width="4 ...

  8. 原生js图片懒加载特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. js原生图片懒加载 或 js原生图片预加载,html标签自定义属性

    使用原声js来实现图片预加载,或图片懒加载,小伙伴们可以根据项目需要来结合vue或者是react来进行修改. 一.什么是图片懒加载或什么是图片预加载 当访问一个页面的时候,先把img元素或是其他元素的 ...

随机推荐

  1. 洛谷 P3190 [HNOI2007]神奇游乐园 解题报告

    P3190 [HNOI2007]神奇游乐园 Description 给你一个 \(m * n\) 的矩阵,每个矩阵内有个权值\(V(i,j)\) (可能为负数),要求找一条回路,使得每个点最多经过一次 ...

  2. java多线程 --ConcurrentLinkedQueue 非阻塞 线程安全队列

    ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部:当我们获取一个元素时,它会返回队列头 ...

  3. bzoj4784【zjoi2017】仙人掌

    题目描述 如果一个无自环无重边无向连通图的任意一条边最多属于一个简单环,我们就称之为仙人掌.所谓简单环即不经过 重复的结点的环. 现在九条可怜手上有一张无自环无重边的无向连通图,但是她觉得这张图中的边 ...

  4. [CQOI2012] 交换棋子 (费用流)

    $pdf\space solution$    link #include<iostream> #include<cstring> #include<cstdio> ...

  5. GDB调试工具

    1.运行代码的三种情况     a.运行时有逻辑问题     gdb a.out 设置断点 单行执行     b.运行代码没有退出  一直运行 结束不了         挂载调试    跟踪调试 -g ...

  6. UML类图与类间六种关系表示

    UML类图与类间六种关系表示 1.类与类图 类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性,操作,关系的对象集合的总称. 类图是使用频率最高的UML图之一. 类图用于描述系统中所包含的 ...

  7. The POSIX API/nss/nscd

    https://code.google.com/p/nsscache/wiki/BackgroundOnNameServiceSwitch The POSIX API POSIX is a stand ...

  8. python 资产扫描01

    本地建立的三个文件: Asset1.txt 用来保存扫描到的资产 Asset2.txt 用来导入给定的资产 Repeat.txt 保存重复的资产 程序的功能: 1.资产扫描,以 位置:资产 格式保存到 ...

  9. SQL Server 2012安装图解

    SQL Server 2012 Enterprise Edition安装图解... 第一部分:安装前的准备 1.疑问:一个PC上可以安装多个SQL Server数据库么 答案:可以的.每一个安装的时候 ...

  10. python数据结构(1)

    四种内建的数据结构:List.Tuple.Dictionary以及Set. 1.列表 列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. (1).创 ...