javaScript-图片懒加载

原理:

  • 获取图片距离浏览器可视区顶部的距离,
  • 获取浏览器可视区的高度,通过对两者进行比较
  • 当图片距离浏览器顶部的距离小于浏览器可视区高度时,给图片的src属性赋值
  • 代码
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title>懒加载</title>
    		<!-- css属性 -->
    		<style type="text/css">
    			*{
    				padding: 0;
    				margin: 0;
    				box-sizing: border-box;
    			}
    			.list{
    				width: 200px;
    				margin: 0 auto;
    			}
    			.text{
    				width: 100%;
    				height: 800px;
    				background-color: deeppink;
    			}
    			li{
    				width: 200px;
    				height: 300px;
    				list-style: none;
    				border: 1px solid #000000;
    				margin-bottom: 20px;
    			}
    			li>img{
    				width: 100%;
    				height: 100%;
    			}
    		</style>
    	</head>
    	<body>
    		<div id="app">
    			<div class="text"></div>
    			<ul class="list">
    				<li><img src="" data_src="https://img1.baidu.com/it/u=1299943596,3583747692&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500"></li>
    				<li><img src="" data_src="https://img0.baidu.com/it/u=762329578,2706191642&fm=253&fmt=auto&app=138&f=JPEG?w=354&h=500"></li>
    				<li><img src="" data_src="https://img0.baidu.com/it/u=3557404089,3353330025&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=584"></li>
    			</ul>
    		</div>
    		
    		<script type="text/javascript">
    			//获取图片
    			const oImgs = document.querySelectorAll('.list>li>img')
    					
    			window.addEventListener('scroll',()=>{
    				oImgs.forEach((item,index)=>{
    					const itemTop = item.getBoundingClientRect().top
    					if(itemTop<window.innerHeight){
    						const data_src = item.getAttribute('data_src')
    						item.setAttribute('src',data_src)
    						console.log('我调用了')
    					}
    				})
    			})
    			
    		</script>
    	</body>
    </html>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值