修复了在iOS Safari中导致不需要的重新定位的背景图像?

时间:2018-02-23 20:16:14

标签: css safari css-animations mobile-safari css-transforms

我在div中有一个固定的背景图像,在移动Safari中无法一致显示。刷新页面时显示正常,但是当我尝试向后和向前提示到其他网站页面时会出现主要问题,这会导致浏览器重新定位背景的原点。

注意:第一张图像显示背景图像正确显示,而第二张图像显示在Safari移动浏览器中向后/向前导航时发生的变换原点偏移(主要问题)。

enter image description here enter image description here

这是一个片段,供进一步参考:



try ( FileInputStream input = new FileInputStream(...);
      BufferedReader br = new BufferedReader(...) ) {
  // Use input
} 

body,
html {
  height: 100%;
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
}

body {
  background: white;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  z-index: -2;
}

.sitebg {
  background: url("http://maxpixel.freegreatpicture.com/static/photo/1x/Seamless-Repeating-Tiling-Tile-able-Tileable-1889447.jpg");
  background-repeat: repeat;
  background-position: center;
  background-size: 720px 720px;
  -webkit-animation: 180s rotatebg infinite linear;
  -moz-animation: 180s rotatebg infinite linear;
  -o-animation: 180s rotatebg infinite linear;
  -ms-animation: 180s rotatebg infinite linear;
  animation: 180s rotatebg infinite linear;
  width: 750px;
  height: 750px;
  position: fixed;
  top: 50%;
  left: 50%;
}

.sitebg-parent {
  position: absolute;
  height: 100%;
  width: 100%;
  margin: auto;
  padding: 0;
  overflow: hidden;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}

@-webkit-keyframes rotatebg {
  0% {
    -webkit-transform: rotate(0deg) translate(-50%, -50%);
    -webkit-transform-origin: top left;
  }
  100% {
    -webkit-transform: rotate(360deg) translate(-50%, -50%);
    -webkit-transform-origin: top left;
  }
}

@keyframes rotatebg {
  0% {
    transform: rotate(0deg) translate(-50%, -50%);
    transform-origin: top left;
  }
  100% {
    transform: rotate(360deg) translate(-50%, -50%);
    transform-origin: top left;
  }
}




1 个答案:

答案 0 :(得分:1)

请尝试以下代码。
我稍微改变了你的代码并删除了不必要的和有效的css规则。

html, body {
  height: 100%; width: 100%;
  margin: 0; padding: 0;
}

.sitebg {
  position: absolute;
  top: 50%; left: 50%;
  width: 2000px; height: 2000px;
  margin: -1000px 0 0 -1000px;
  background: url("http://s3.gomedia.us/wp-content/uploads/2008/06/skullbg-green.gif");
  transform-origin: 50% 50%;
  -webkit-animation: 180s rotatebg infinite linear;
  animation: 180s rotatebg infinite linear;
}

.sitebg-parent {
  position: absolute; z-index: -1;
  top: 0; right: 0; bottom: 0; left: 0;
  overflow: hidden;
}

@-webkit-keyframes rotatebg {
  0% {-webkit-transform: rotateZ(0deg)}
  100% {-webkit-transform: rotateZ(360deg)}
}

@keyframes rotatebg {
  0% {transform: rotateZ(0deg)}
  100% {transform: rotateZ(360deg)}
}
<body>
  <div class="sitebg-parent">
    <div class="sitebg"></div>
  </div>
</body>