写在前面
首先要感谢我家里的网速,如果特别好的话,我可能不会想到实现这个小玩意,我百度一个东西的时候发现下面这三个小球一直晃悠,实在是很烦,决定看看这个是怎么实现的,所以就有了今天的文章,首先说明这个不是百度的实现过程,这个是我自己想的他是怎么实现的,可能百度的那群大佬不会像我写的那么的lowb,不过,效果嘛,看着差不多就可以了,先看一下效果图:

文章涉及到的小知识点:
- flex布局
- animation
- infinite
- @-webkit-keyframes
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			body{
				display: flex;
				justify-content: center;
				margin-top: 10%;
				background: #000000;
			}
			#content{
				width: 400px;
				height: 150px;
				position: absolute;
				background: #FFF;
				border-radius: 5px;
				display:flex;
				flex-direction: row;
				align-items: center;
			}
			.left{
				width: 20px;
				height: 20px;
				position: absolute;
				left: 140px;
				background: RGB(227,42,55);
				border-radius: 50%;
				animation: Moveright 1.5s infinite;
			}
			@-webkit-keyframes Moveright{
				to{
					left:220px;
				}
			}
			.center{
				width: 20px;
				height: 20px;
				position: absolute;
				left: 180px;
				background: RGB(76,76,76);
				border-radius: 50%;
			}
			.right{
				width: 20px;
				height: 20px;
				position: absolute;
				left: 220px;
				background: rgb(43,113,248);
				border-radius: 50%;
				animation: Moveleft 1.5s infinite;
			}
			@-webkit-keyframes Moveleft{
				to{
					left:140px;
				}
			}
		</style>
	</head>
	<body>
		<div id="content">
			<div class="left"></div>
			<div class="center"></div>
			<div class="right"></div>
		</div>
	</body>
</html>
懒加载
- 上面说了在家确实是无聊,没事巩固巩固自己的基础,写点原生的东西出来,这里写一个原生的懒加载的实现。
效果图

效果展示
源码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			body {
				display: flex;
				justify-content: center;
			}
			#box {
				display: flex;
				width: 70%;
				flex-wrap: wrap;
				flex-direction: column;
				justify-content: center;
			}
			ul li {
				width: 32%;
				border: 1px solid red;
				height: 250px;
				border-radius: 4px;
				float: left;
				list-style: none;
				margin: 0px 10px 10px 0px;
			}
			img {
				flex-grow: 1;
				width: 100%;
				height: 100%;
				border-radius: 4px;
			}
		</style>
	</head>
	<body>
		<div id="box">
			<ul>
				<li>
					<img _src="images/1.jpeg" />
				</li>
				<li>
					<img _src="images/2.jpeg" />
				</li>
				<li>
					<img _src="images/3.jpeg" />
				</li>
				<li>
					<img _src="images/4.jpeg" />
				</li>
				<li>
					<img _src="images/5.jpeg" />
				</li>
				<li>
					<img _src="images/6.jpeg" />
				</li>
				<li>
					<img _src="images/7.jpeg" />
				</li>
				<li>
					<img _src="images/8.jpeg" />
				</li>
				<li>
					<img _src="images/9.jpeg" />
				</li>
				<li>
					<img _src="images/10.jpeg" />
				</li>
				<li>
					<img _src="images/11.jpeg" />
				</li>
				<li>
					<img _src="images/12.jpeg" />
				</li>
				<li>
					<img _src="images/13.jpeg" />
				</li>
				<li>
					<img _src="images/14.jpeg" />
				</li>
				<li>
					<img _src="images/15.jpeg" />
				</li>
				<li>
					<img _src="images/16.jpeg" />
				</li>
				<li>
					<img _src="images/17.jpeg" />
				</li>
				<li>
					<img _src="images/18.jpeg" />
				</li>
			</ul>
		</div>
	</body>
	<script>
		//获取到所有图片的对象
		var objImages = document.getElementsByTagName("img");
		//获取到可视区域的高度
		var eyeHeight = document.documentElement.clientHeight;
		console.info("可视区域高度为:" + eyeHeight);
		//当页面加载和滚动的时候触发该事件
		window.onload = window.onscroll = function() {
			//获取到滚动条高度
			let scrollHeigth = document.documentElement.scrollTop;
			console.info("可视区域高度为" + scrollHeigth)
			//将图片遍历出来进行筛选哪些是可以显示的
			for (let item of objImages) {
				//获取到该图片到顶部的距离
				let imgTop = item.offsetTop;
				console.info(imgTop)
				//此时如果该图片到顶部的距离小于了滚动条加上可视区域的距离,说明该图片是可以显示的
				if (imgTop <= eyeHeight + scrollHeigth) {
					item.src = item.getAttribute("_src")
				}
			}
		}
	</script>
</html>
拜了个拜您嘞
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
 
                     
     
        
       
        
       
        
       
        
       
    
发表评论
还没有评论,快来抢沙发吧!