> 웹 프론트엔드 > JS 튜토리얼 > 이미지 지연 로딩의 예

이미지 지연 로딩의 예

零下一度
풀어 주다: 2017-06-29 11:36:07
원래의
1513명이 탐색했습니다.

사진이 많은 웹사이트에서는 항상 해당 위치를 탐색하면 해당 사진이 로드됩니다.

<!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으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿