css3 动画

总结下图片轮播功能,之前用js写过图片轮播功能,主要分以下几个方向实现:

1、改变图片位置,这是最常见的实现方式之一。图片的定位方式用position:absolute/relative,图片不叠加。

2、改变图片的透明度,图片的定位方式用position:absolute,图片叠加。

今天突然想到用css3动画实现下图片轮播功能,虽然已经是老掉牙的问题了,如下:

结构:

<div class="luoboOut">
    <ul>
        <li class="red"></li>
        <li class="blue"></li>
        <li class="green"></li>
    </ul>
</div>

样式:

先定位:

.luoboOut{
    width:500px;
    height:300px;
    margin:auto;
    background-color:#ccc;
    overflow: hidden;
}
.luoboOut ul{
    height:100%;
    position: relative;
}
.luoboOut ul li{  //定义元素定位状态(因为是水平轮播,所以三个图片在一个水平线上)
                    //也可以用float,父元素width为三个元素width相加
    width:100%;
    height:100%;
    position:absolute;
}
.red{
    background-color: red;
    animation:myfirst 10s infinite; // 引用动画,定义时间、循环
}
.blue{
    background-color: blue;
    animation:mysecond 10s infinite;
}
.green{
    background-color: green;
    animation:mythird 10s infinite;
}

//为每个元素定义动画,因为有三个图片,所以每个图片有三个状态(也就是三个位置)
@keyframes myfirst
{
    0%   {left:0px; top:0px;}
    20%   {left:0px; top:0px;}
    40%   {left:-500px; top:0px;}
    60%   {left:-500px; top:0px;}
    80% {left:-1000px; top:0px;}
    100% {left:-1000px; top:0px;}
}
@keyframes mysecond
{
    0%   {left:500px; top:0px;}
    20%   {left:500px; top:0px;}
    40%   {left:0px; top:0px;}
    60%   {left:0px; top:0px;}
    80% {left:-500px; top:0px;}
    100% {left:-500px; top:0px;}
}
@keyframes mythird
{
    0%   {left:1000px; top:0px;}
    20%   {left:1000px; top:0px;}
    40%   {left:500px; top:0px;}
    60%   {left:500px; top:0px;}
    80% {left:0px; top:0px;}
    100% {left:0px; top:0px;}
}

 

转载于:https://my.oschina.net/niejianbo/blog/865665

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值