【CSS】图片栏无缝滚动效果实现

效果图

思路分析:

第一步,定义div>ul>li*7,因为有7张图片。

第二步,设置div的宽度高度以及li的浮动,保证它们全部在div内的同一行。

第三步,实现滚动。用到了动画相关知识点,即

animation: move 5s linear infinite;
@keyframes move{
	 	from{
			transform: translateX(0);
		}
		to{
			transform: translateX(-882px);
		}
}

第四步,现在已经可以向左滚动了,但是问题是什么呢?“无缝”还没有实现,即向左滚动后原位置出现了空隙。解决办法就是复制相同的li内容添加在后面,为了避免出现两行,要把ul的宽度设置为200%。

第五步,最后一步,限制所有内容都在div内,所以添加overflow:hidden,大功告成。

完整源代码

<!DOCTYPE html>
<html>
<head>
	<title>无缝滚动效果</title>
	<style type="text/css">
	   *{
	   	margin: 0;
	   	padding: 0;
	   }
		ul{
			list-style: none;
			/*animation:动画名称 动画时间 运动曲线  何时开始  播放次数  是否反方向;*/
			-webkit-animation: move 5s linear infinite;
			-o-animation: move 5s linear infinite;
			animation: move 5s linear infinite;
			width:200%;

		}
		li{
			float: left;
		}
		div{
			width:882px;
			height:86px;
			margin:100px auto;
			border: 1px solid red;
			overflow: hidden;
		}
		@keyframes move{
			from{
				transform: translateX(0);
			}
			to{
				transform: translateX(-882px);
			}
		}
	</style>
</head>
<body>
<div>
	<ul>
		<li><img src="images/nav1.jpg"></li>
		<li><img src="images/nav2.jpg"></li>
		<li><img src="images/nav3.jpg"></li>
		<li><img src="images/nav4.jpg"></li>
		<li><img src="images/nav5.jpg"></li>
		<li><img src="images/nav6.jpg"></li>
		<li><img src="images/nav7.jpg"></li>
		<li><img src="images/nav1.jpg"></li>
		<li><img src="images/nav2.jpg"></li>
		<li><img src="images/nav3.jpg"></li>
		<li><img src="images/nav4.jpg"></li>
		<li><img src="images/nav5.jpg"></li>
		<li><img src="images/nav6.jpg"></li>
		<li><img src="images/nav7.jpg"></li>
	</ul>
</div>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值