首页 > 解决方案 > 如何使 CSS 动画在 IOS Chrome 上运行?

问题描述

我仅使用不适用于 IOS (iPhone 11) Chrome 的 CSS 制作了动画。它适用于桌面 Chrome、Firefox 和 Safari。但是,它在 iPhone 上无法正常工作。我确实尝试为-webkit-转换实现前缀,但是仍然无法让它工作。

.message_bar {
  width: 100%;
  position: absolute;
  margin: 0;
  padding: 0;
  background: #333;
  height: 40px;
  text-align: center;
  overflow: hidden;
}

.message_bar span {
  position: absolute;
  opacity: 0;
  overflow: hidden;
  color: #fff;
  font-size: 14px;
  line-height: 14px;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  width: 100%;
}

.a111 {
  -webkit-animation: rotateWord0 10s linear infinite 0s;
  -ms-animation: rotateWord0 10s linear infinite 0s;
  animation: rotateWord0 10s linear infinite 0s;
}

.a222 {
  -webkit-animation: rotateWord 10s linear infinite 3s;
  -ms-animation: rotateWord 10s linear infinite 3s;
  animation: rotateWord 10s linear infinite 3s;
}

@-webkit-keyframes rotateWord {
  0% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  30% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  40% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  50% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  60% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  90% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
}

@-ms-keyframes rotateWord {
  0% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  30% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  40% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  50% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  60% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  90% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
}

@keyframes rotateWord {
  0% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  30% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  40% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  50% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  60% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  90% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
}

@-webkit-keyframes rotateWord0 {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  30% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  40% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  50% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  80% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  90% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
}

@-ms-keyframes rotateWord0 {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  30% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  40% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  50% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  80% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  90% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
}

@keyframes rotateWord0 {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  30% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  40% {
    opacity: 0;
    -webkit-transform: translateY(-40px);
  }
  50% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  80% {
    opacity: 0;
    -webkit-transform: translateY(40px);
  }
  90% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
}
<section class="message_bar">
  <div class="message_bar_center">
    <span class="a111">banner 1 banner 1 banner 1 banner 1 banner 1 banner 1 banner 1</span>
    <span class="a222">banner 2 banner 2 banner 2 banner 2 banner 2 banner 2 banner 2 banner 2</span>
  </div>
</section>

标签: htmlcssioscss-animationscss-transitions

解决方案


推荐阅读