按需加载的优势:在实际调查中发现,很多的网民在游览网站时具有明确的指向性,往往在进入主页后直接搜索进入自己需要的商品列表内,如果在客户进入主页时将主页信息全部加载完毕后展示给顾客,会极大的浪费网站资源,同时也会降低客户体验度,因而按需加载则成为了当今网站构建的主流;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>按需加载图片</title>
<style type="text/css">
*{margin:0px;padding:0px;list-style:none;}
ul{
height:auto;
overflow:hidden;
width:400px;
margin:0 auto;
}
li{
width:300px;
height:200px;
border:solid 1px #ddd;
overflow:hidden;
}
</style>
</head>
<body>
<ul>
<li><img data-src="./sunli/1.jpg" alt=""></li>
<li><img data-src="./sunli/2.jpg" alt=""></li>
<li><img data-src="./sunli/3.jpg" alt=""></li>
<li><img data-src="./sunli/4.jpg" alt=""></li>
<li><img data-src="./sunli/5.jpg" alt=""></li>
<li url="./rexiao.php">
</li>
</ul>
<script type="text/javascript" src="https://www.linuxidc.com/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//绑定窗口的滚动事件
$(window).scroll(function(){
//遍历检测里面的元素尺寸
$('li[isLoaded!=1]').each(function(){
//获取滚动高度
var sT = $(window).scrollTop();
//获取窗口的可视区域的高度
var cT = $(window).height();
//获取元素距离文档顶部的偏移量
var t = $(this).offset().top;
//暂存当前元素对象
var curLi = $(this);
//检测判断
if(t <= sT + cT){
//检测是否具有url属性
var url = $(this).attr('url');
//如果有 发送ajax 获取请求之后的数据
if(url){
//发送ajax
$.get('rexiao.php',{}, function(data){
curLi.html(data);
return;
})
}
//这个时候要显示了 修改元素的src属性
var src = $(this).find('img').attr('data-src');
//设置
$(this).find('img').attr('src',src);
//做标识
$(this).attr('isLoaded','1');
}
})
})
//使用代码来触发滚动事件
$(window).trigger('scroll');