yongquanx 2018-02-17
CSS实现小球跳动效果
<style type="text/css">
.bound {
animation-duration: 1s;
}
.ball {
animation-duration: .75s;
}
.dot {
animation-duration: .25s;
}
.dot {
top: 100%;
height: 50%;
width: 50%;
background-color: #fff;
transform: translate(0, -50%);
animation-name: drop;
}
.ball {
top: 100%;
height: 50%;
width: 50%;
transform: translate(0, -50%);
animation-name: drop, roundround;
}
.bound {
top: 0;
animation-name: playalong, roundround;
}
.wrapper {
position: relative;
margin: auto;
width: 100%;
overflow: hidden;
}
.wrapper:before {
content: "";
display: block;
padding-top: 100%;
}
.bound,
.ball,
.dot {
position: absolute;
margin: auto;
animation-delay: 0;
animation-direction: alternate;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
animation-play-state: running;
right: 0%;
bottom: 0%;
left: 0%;
border-radius: 50%;
}
body {
margin: 0;
background: black;
}
* {
box-sizing: border-box;
}
@keyframes playalong {
from {
height: 100%;
width: 100%;
}
to {
height: 10%;
width: 10%;
}
}
@keyframes roundround {
to {
transform: rotate(360deg);
}
}
@keyframes drop {
to {
top: 0%;
bottom: 80%;
transform: scale(.25);
}
}
@media (orientation: landscape) {
.wrapper {
width: 100vh;
}
}
@media (orientation: portrait) {
.wrapper {
top: 50%;
-ms-transform:translateY(-50%);
-webkit-transform:translateY(-50%);
-moz-transform:translateY(-50%);
-o-transform:translateY(-50%);
transform:translateY(-50%);
}
body{
height:100vh;
}
}
@-ms-viewport {
width: device-width;
}
@viewport {
zoom: 1.0;
width: device-width;
}
</style>
<div class="wrapper">
<div class="bound">
<span class="ball">
<span class="dot"></span>
</span>
</div>
</div>.
/*垂直居中,div上边界距离窗口上边的距离为窗口高度的50%,并针对不同浏览器进行兼容。-- 在外层添加一个div,把行内容居中,添加.row .justify-content-center -->