如图 实现一个赞助商横向滚动列表墙,
上下两排向右滚动,中间向左滚动,鼠标移入暂停当前行。
实现:
// 使用animation
.moving {
animation: move 20s linear infinite;
}
@keyframes move {
0% {
}
100% {
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
-o-transform: translateX(-50%);
}
}
.moving2 {
animation: move2 20s linear infinite;
-webkit-animation: move2 20s linear infinite;
}
@keyframes move2 {
0% {
}
100% {
transform: translateX(50%);
-webkit-transform: translateX(50%);
-moz-transform: translateX(50%);
-ms-transform: translateX(50%);
-o-transform: translateX(50%);
}
}
原来想的是 使用addClass 和removeClass进行moving属性添加移除,从而达到鼠标移入暂停的效果,但是实现的时候发现每次鼠标移入,列表图片都会向左右抖动一下,并不美观。
.moving: hover {
animation: paused; // 同样存在这个问题,但是没之前那么明显了
}
最终解决:
.moving:hover {
animation-play-state:paused;
}
// 特别流畅,不会出现抖动,效果实现
总结:
css animation-play-state 属性
暂停动画:
animation-play-state:paused;
-webkit-animation-play-state:paused; /* Safari 和 Chrome */
// paused 指定暂停动画
// running 指定正在运行的动画
// Internet Explorer 9 以及更早的版本不支持 animation-play-state 属性。