图片自然翻转并切换图片

以下代码实现的功能为图片翻转,并切换的功能,最后有一个自然摆动(摆动速度全靠感觉),好吧,随你觉得自不自然,反正我觉得很自然。

贴链接:图片翻转切换最最后摆动一下
CSS样式

.front {
    z-index: 2;
}
/*设置大小*/
.bgtest{
    height: 120px;
    width: 192px; }
/*.flip-container,*/
.flipper,.front, .back {            
    height: 120px;
    width: 192px;
}

/* 翻转效果 */
.flipper {
    perspective: 1000px ;
    transition: 0.6s;
    transform-style: preserve-3d;
    position: relative;
}
.flipper:hover > .front {
    background-color: rebeccapurple;
    transform: rotateY(180deg);
    backface-visibility: hidden;

}
/*反转后抖动*/
.flipper:hover > .back{
    transform: rotateY(180deg);
    backface-visibility: visible;
    -webkit-animation:shake 1.5s  0.5s;
    animation:shake 1.5s  0.5s;
}

/* 隐藏后面的内容 */
.front, .back {
    transition: all 0.6s ease 0s;
    backface-visibility: hidden;
    transform: rotateY(0deg);
    transform-style: preserve-3d;
    position: absolute;
    top: 0;
    left: 0;

}
/*摆动的动画,通过transform的rotateY实现动画,完全没有什么数学公式,凭着感觉走,永远不会错*/
@keyframes shake{
    0%{
        -webkit-transform:rotateY(202deg);
        transform: rotateY(202deg);
    }
    10%{
        -webkit-transform: rotateY(158deg) ;
        transform: rotateY(158deg);
    }
    20%{
        -webkit-transform:rotateY(196deg);
        transform: rotateY(196deg);
    }
    30%{
        -webkit-transform:rotateY(164deg) ;
        transform: rotateY(164deg);
    }
    40%{
        -webkit-transform:rotateY(190.5deg) ;
        transform: rotateY(190.5deg);
    }
    50%{
        -webkit-transform:rotateY(169.5deg) ;
        transform: rotateY(169.5deg) ;
    }
    60%{
        -webkit-transform:rotateY(186.5deg);
        transform: rotateY(186.5deg) ;
    }
    70%{
        -webkit-transform:rotateY(173.5deg);
        transform: rotateY(173.5deg) ;
    }
    80%{
        -webkit-transform: rotateY(183.5deg);
        transform: rotateY(183.5deg) ;
    } 90%{
        -webkit-transform:rotateY(176.5deg);
        transform: rotateY(176.5deg) ;
    }
    100%{
        -webkit-transform:rotateY(180deg);
        transform: rotateY(180deg);

    }

}

Html代码

<div class="flipper">
    <div class="front">
        <!-- 前面内容 -->
        <img class="bgtest " src="学习0.jpg">
    </div>
    <div class="back">
        <!-- 背面内容 -->
        <img class="bgtest " src="clock-1461689_640.jpg">
    </div>
</div>

因为大佬让写这个动画,所以顺便学习了一下几个动画
基础知识
perspective(透视的) : 镜头到元素平面的距离。所有元素都放置在z=0的平面, perspective(200px),则镜头到平面距离为200px.
就像你有个望远镜,望远镜看到的距离。
perspective-origin: 属性规定了镜头在平面上的位置。默认是放在元素的中心。这个就是调望远镜的角度(相对x,y坐标轴)。

posted @ 2016-12-01 21:13  stone-lyl  阅读(501)  评论(0编辑  收藏  举报