一尘不染

用平滑的结果对CSS背景位置进行动画处理(亚像素动画)

css

我正在尝试为div的背景位置设置动画,但要使其保持平稳。您可以在这里查看我目前的努力结果:

@-webkit-keyframes MOVE-BG {
    from {
        background-position: 0% 0%
    }
    to { 
        background-position: 187% 0%
    }
}

#content {
    width: 100%;
    height: 300px;
    background: url(http://www.gstatic.com/webp/gallery/1.jpg) 0% 0% repeat;
    text-align: center;
    font-size: 26px;
    color: #000;

    -webkit-animation-name: MOVE-BG;
    -webkit-animation-duration: 100s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
}

我已经呆了好几个小时了,找不到任何可以在亚像素级别上缓慢而流畅地进行动画处理的东西。我当前的示例是根据此页面上的示例代码制作的

如果无法使用背景位置完成操作,是否有办法伪造具有多个div的重复背景并使用翻译移动这些div?


阅读 318

收藏
2020-05-16

共1个答案

一尘不染

看看这个例子:

#content {

  height: 300px;

  text-align: center;

  font-size: 26px;

  color: #000;

  position:relative;

}

.bg{

  position: absolute;

  left: 0;

  right: 0;

  top: 0;

  bottom: 0;

  z-index: -1;

  background: url(http://www.gstatic.com/webp/gallery/1.jpg) 0% 0% repeat;

  animation-name: MOVE-BG;

  animation-duration: 100s;

  animation-timing-function: linear;

  animation-iteration-count: infinite;

}

@keyframes MOVE-BG {

   from {

     transform: translateX(0);

   }

   to {

     transform: translateX(-187%);

   }

}


<div id="content">Foreground content

  <div class="bg"></div>

</div>
2020-05-16