轮播图(animation)

CSS的内容不多,而且每一项单独看都很简单,但是把这些知识点揉在一起,就成了一个大问题,所以啊,不时的写个好玩的特效来学习CSS,既有趣又可以学习,这样多好啊!

今天就先做个轮播图吧。

首先是HTML部分

<div id="box">
	<div id="pic">
			<img id="one" src="images/1.jpg" alt="图片">
			<img id="two" src="images/2.jpg" alt="图片">
			<img id="three" src="images/3.jpg" alt="图片">
			<img id="four" src="images/4.jpg" alt="图片">
			<img id="five" src="images/5.jpg" alt="图片">
			<img id="six" src="images/6.jpg" alt="图片">
			
	</div>
</div>

说一下思路吧。外层的div是视图框,也就是可见域,超出的部分隐藏起来;内层的div呢,就是轮播内容的集合,通过这个区域的移动来实现图片轮播的效果。

下面上CSS部分的代码

 @charset "utf-8";
/* CSS Document */
*{
	padding: 0;
	margin: 0;
}
#box{
	width: 200px;
	height: 126px;
	position: absolute;
	overflow: hidden;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}
#pic{
	width: 1200px;
	height: 126px;
} 
#pic>img{
	width: 200px;
	height: 126px;
	position: absolute;
}
/*通过区域图片的位移,滑动,隐藏做出效果*/
#pic{
	animation: move 18s linear normal infinite forwards;
}
@keyframes move{
	0%,12%{
		margin-left: 0;
	}
	15%,27%{
		margin-left: 200px;
	}
	30%,42%{
		margin-left: 400px;
	}
	45%,57%{
		margin-left: 600px;
	}
	60%,72%{
		margin-left: 800px;
	}
	74%,100%{margin-left: 1000px;
	}
}
#one{
	transform: translate(0,0);
}
#two{
	transform: translate(-200px,0);
}
#three{
	transform: translate(-400px,0);
}
#four{
	transform: translate(-600px,0);
}
#five{
	transform: translate(-800px,0);
}
#six{
	transform: translate(-1000px,0);
}

这里用到了CSS中的animation来达到动态的效果,那就讲一下animation的用法吧

animation一共有7个属性值

属性值含义可选值
name动画名称自定义
duration动画持续事件
timing-function时间函数linear(匀速) ease(慢快慢) ease-in(一值开始画面,然后瞬间结束) ease-end(一值结束画面,然后瞬间结束)
delay延迟时间
iteration-count次数infinite(无数次) 自定义次数
direction方向normal(正序) reverse(倒序) alternate(交替播放,奇数次正序,偶数次倒序) alternate-reverse(反向交替,奇数次倒序,偶数次正序)
fill-mode动画前后的样式none(不改变) forwards(保持动画最后一帧) backwards(保持动画第一帧) both(执行forwards和backwards)

通过@keyframes animation.name 来定义关键帧时的样式,也就是定义一些特定时刻的静态样式,来实现轮播效果。

/*这是以上轮播图的关键帧*/
@keyframes move{
/*控制左侧的外边距*/
	0%,12%{
	/*在0-12%时间段内,左侧外边距为0*/
		margin-left: 0;
	}
	15%,27%{
		margin-left: 200px;
	}
	30%,42%{
		margin-left: 400px;
	}
	45%,57%{
		margin-left: 600px;
	}
	60%,72%{
		margin-left: 800px;
	}
	74%,100%{margin-left: 1000px;
	}
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值