使用js实现点击懒加载

本文介绍了如何使用JavaScript实现点击事件触发的懒加载技术。通过`document.querySelectorAll`和`document.querySelector`选择元素,并利用`setAttribute`方法设置相应属性,达到延迟加载的效果。
摘要由CSDN通过智能技术生成
	body{margin: 0px; padding: 0px;}
			.top{width: 100%;}
			.top img{width: 100%;}
			#list{display: flex;flex-wrap: wrap; justify-content: space-around;text-align: center;}
			dl{width: 30%;}
			dl img{width: 100%;}
			h2{width: 100%;}
			.box{text-align: center;}
			#btn{border: 0px; padding: 6px 12px; background-color: #0099FF;color: white;
			cursor: pointer; margin: 20px 0px;}
	<div id="main">
			<div class="top"><img src="img/ban0.jpg" ></div>
			<div id="list">
				<h2>图片列表</h2>
				<dl>
					<dt><img xsrc="img/1.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/2.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/3.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/4.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/5.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/6.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/7.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/8.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
				<dl>
					<dt><img xsrc="img/9.jpg" ></dt>
					<dd>范德萨</dd>
				</dl>
			</div>
			<div class="box">
				<button type="button" id="btn">点击更多</button>
			</div>
		</div>
	window.onload = function(){
				var dls = document.querySelectorAll("#list dl");//根据id名 dl下获得所有对象
				for (var i = 0; i < dls.length; i++) {//循环获得对象的长度
					dls[i].style.display = "none"
				}
				var btn = document.getElementById("btn");//根据id获得按钮对象
				var num = 3;//每次加载多少条
				btn.onclick = function(){//设置一个点击事件
					for (let i = 0; i < dls.length&&i<num; i++) {
							setTimeout(function(){//设置定时器
								dls[i].style.display = "block";
								var url = dls[i].querySelector("img").getAttribute("xsrc");
								dls[i].querySelector("img").setAttribute("src",url)
							},100)
					}
					num+=3;
					if(num>dls.length){//当加载的数量大于所获得的对象
						btn.innerText = "木有了";
						btn.setAttribute("disabled",true);
						btn.style.cssText = "background-color: #BEC4C9;cursor: not-allowed;"//添加鼠标样式禁止点击
					}
				}
			}

document.querySelectorAll()获取多个元素

document.querySelector()获取单个元素

setAttribute(第一个参数,第二个参数)第一个参数属性名,第二个参数属性值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值