【发布时间】:2019-03-04 01:12:21
【问题描述】:
我正在尝试使用关键帧在全屏图像上创建动画循环以实现不透明度和缩放。因为我希望这张图片能一直显示,所以我将它放在了一个固定容器中。
在 Chrome(69)、Firefox(62) 和 Safari 移动版 11 中一切正常。该问题仅出现在 Safari 移动版的旧版本中,在 10.3.3 中观察到 在 iPad 上。
项目的导航使用内部链接在页面上下跳转。当页面跳转到锚点时,动画图像被剪裁(如缺少上半部分或下半部分)或完全消失,只有在新的滚动事件下才能正确呈现。每当使用内部链接时,此问题都会重复。正常向下滚动页面时,一切正常。
我尝试用 GSAP 替换关键帧动画或通过在 JS 中添加/删除类来制作动画,但似乎没有任何帮助。
更新:answer below中的解决方法
这是使用的代码:
.animation-wrapper {
position: fixed;
width: 100vw;
height: 100vh;
}
.animation-wrapper img {
width: 100%;
animation: pulse 8s ease-in-out infinite;
}
@keyframes pulse {
0% {
transform: scaleX(0.95);
}
50% {
transform: scaleX(1.05);
}
100% {
transform: scaleX(0.95);
}
}
body {
height: 4000px;
background-color: black;
}
nav {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 20;
}
ul {
display: flex;
justify-content: space-around;
}
li > a {
color: white;
}
.anchor {
position: absolute;
top: 0;
}
section {
position: relative;
height: 1000px;
}
<nav>
<ul>
<li class="item"><a href="#home">HOME</a></li>
<li class="item"><a href="#projects">PROJECTS</a></li>
<li class="item"><a href="#about">ABOUT</a></li>
<li class="item"><a href="#contact">CONTACT</a></li>
</ul>
</nav>
<div class="animation-wrapper">
<img src="img1.jpg" alt="">
</div>
<section>
<a id="home" class="anchor"></a>
</section>
<section>
<a id="projects" class="anchor"></a>
</section>
<section>
<a id="about" class="anchor"></a>
</section>
<section>
<a id="contact" class="anchor"></a>
</section>
这个问题听起来很熟悉吗?任何人都知道是什么导致了这种行为,以及我可以做些什么作为解决方法?这似乎是一个在较新版本中修复的错误,但我仍然希望这个项目也能在旧版 Safari 中运行。非常感谢任何见解。
【问题讨论】: