zoukankan      html  css  js  c++  java
  • 图片懒加载

    在图片比较多的网站总会看见,当浏览到那个位置,就加载那的图片。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<style type="text/css">
    			*{
    				margin: 0;
    				padding: 0;
    			}
    			img{
    				display: block;
    				 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>
    

      

  • 相关阅读:
    蓝书·目录
    CSPs-2019·爆零游记
    [原创题目]Uncomplicated Card Recreation
    珂朵莉树(ODT)
    CF407B 「Long Path」
    Manacher(马拉车)
    CSPs-2020 游记
    STM32CubeMX的使用(以点亮闪烁LED为例)
    基于STM32CubeMX的定时器设置
    STM32的中断系统和外部中断(基于STM32CubeMX开发)
  • 原文地址:https://www.cnblogs.com/durenlong/p/7091777.html
Copyright © 2011-2022 走看看