【发布时间】:2019-04-01 15:32:21
【问题描述】:
我正在尝试使用 CSS 在更长的时间内平滑地为背景图像位置设置动画,比如 60 秒:
#movingbackground {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Bigsurflowers.jpg/1280px-Bigsurflowers.jpg');
overflow: hidden;
background-position: left center;
animation: zoomin 60s ease-in infinite;
}
@-webkit-keyframes zoomin {
0% { background-position: 0% center; transform: scale(1.0); }
50% {background-position: 100% center; transform: scale(1.2); }
100% { background-position: 0% center; transform: scale(1.0); }
}
@keyframes zoomin {
0% { background-position: 0% center; transform: scale(1.0); }
50% {background-position: 100% center; transform: scale(1.2); }
100% { background-position: 0% center; transform: scale(1.0); }
}
<div id="movingbackground"></div>
开头和结尾的小动作是每秒“跳跃”几个像素,而不是缓慢移动(可能取决于屏幕尺寸)。
原因可能是没有足够的运动来填充所需的帧数,尤其是在动画缓动时。我想我已经在某个地方看到了这种效果,我想知道如何解决这个问题。
这里也是Fiddle。
【问题讨论】:
-
寻求代码帮助的问题必须包括在问题本身中重现它所需的最短代码,最好是在堆栈片段中。尽管您已经提供了一个链接,但如果它变得无效,那么您的问题对于未来遇到同样问题的其他 SO 用户将毫无价值。见Something in my website/example doesn't work can I just paste a link。
-
linear而不是ease-in可能是您正在寻找的内容
标签: css animation background-position easing