首頁 > web前端 > js教程 > 主體

圖片懶加載的一個實例介紹

零下一度
發布: 2017-06-29 11:36:07
原創
1479 人瀏覽過

在圖片比較多的網站總會看見,當瀏覽到那個位置,就載入那的圖片。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			img{
				display: block;
				width: 500px;
				height: 300px;
			}
			div{
				margin: 500px 0 0 40px;
			}
		</style>
	</head>
	<body>
		<div id="banner">
			<img data-src="image/01.jpeg">
			<img data-src="image/02.jpeg">
			<img data-src="image/03.jpeg">
			<img data-src="image/04.jpeg">
			<img data-src="image/05.jpg">
			<img data-src="image/06.png">
			<img data-src="image/07.png">
			<img data-src="image/08.png">
		</div>

		<script type="text/javascript">
			window.onload=function(){
				var banner=document.getElementById("banner"); 
				var imgs=banner.getElementsByTagName("img");
				 add();//页面加载完成先执行一次
				function getTop(obj){ //写一个方法获取图片距离top的值
					var t=0;      //定义一个保存top值的 变量
					while(obj){  //循环获取每个父级定位的top值
						t+=obj.offsetTop;  //获取传入或改变父级定位的top值,当到大body的时候没有 他的父级定位为null所以就停了
						obj=obj.offsetParent; //获取obj的父级定位
						console.log(t)
						console.log(obj)
					}
					return t;
				}
				function add(){
					var S = document.documentElement.scrollTop || document.body.scrollTop; //获取滑动条距top的值
					var H = window.innerHeight; //获取显示区域高度(只读)
					for(var i=0;i<imgs.length;i++){  //循环图片
						if((S+H) > getTop(imgs[i])){ 判断图片是否进入可视区域
							imgs[i].setAttribute("src",imgs[i].getAttribute("data-src")); //当进入的时候给src 赋值
						}
					}
				}
				
				window.onscroll=function(){ //每次滚动运行方法判断
					add()
				}
			}
				
				
				
			
		</script>
	</body>
</html>
登入後複製

  

 

#

以上是圖片懶加載的一個實例介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板