我有https://codepen.io/anon/pen/ZNLyGe中的以下代码,当用户单击图标导航到同一网站的另一部分时,该代码显示一个等待栏动画。
onclick Javascript使用:
window.location.href = strNewURL;
它在桌面浏览器上可以正常工作,但在iOS上,Safari只要在到达window.location.href行时就将其冻结。
有什么方法可以阻止iOS Safari停止播放该动画吗?
HTML
<div class="dvProgressBarInfinite" id="dvIDProgressBarInfinite">
<div class="indeterminate"></div>
</div>
CSS
/* Progress Bar */
.dvProgressBarInfinite {
position: absolute;
height: 2px;
display: block;
width: 100%;
background-color: #cfcfcf;
border-radius: 2px;
background-clip: padding-box;
margin: 0.5rem 0 1rem 0;
overflow: hidden;
}
.dvProgressBarInfinite .indeterminate {
background-color: #000000;
}
.dvProgressBarInfinite .indeterminate:before {
content: '';
position: absolute;
background-color: inherit;
top: 0;
left: 0;
bottom: 0;
will-change: left, right;
-webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
}
.dvProgressBarInfinite .indeterminate:after {
content: '';
position: absolute;
background-color: inherit;
top: 0;
left: 0;
bottom: 0;
will-change: left, right;
-webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
-webkit-animation-delay: 1.15s;
animation-delay: 1.15s;
}
@-webkit-keyframes indeterminate {
0% {
left: -35%;
right: 100%;
}
60% {
left: 100%;
right: -90%;
}
100% {
left: 100%;
right: -90%;
}
}
@keyframes indeterminate {
0% {
left: -35%;
right: 100%;
}
60% {
left: 100%;
right: -90%;
}
100% {
left: 100%;
right: -90%;
}
}
@-webkit-keyframes indeterminate-short {
0% {
left: -200%;
right: 100%;
}
60% {
left: 107%;
right: -8%;
}
100% {
left: 107%;
right: -8%;
}
}
@keyframes indeterminate-short {
0% {
left: -200%;
right: 100%;
}
60% {
left: 107%;
right: -8%;
}
100% {
left: 107%;
right: -8%;
}
}
JAVASCRIPT
function fJToolbar2Click(intColumnNumber)
{
var strURL = "<%=strClsToolbar2URLPrefix%>";
var strURLSuffix = "";
switch(intColumnNumber) {
case 1:
strURLSuffix ='<%=strClsToolbar2ClickURLsTarget(1)%>';
break;
case 2:
strURLSuffix ='<%=strClsToolbar2ClickURLsTarget(2)%>';
break;
case 3:
strURLSuffix ='<%=strClsToolbar2ClickURLsTarget(3)%>';
break;
case 4:
strURLSuffix ='<%=strClsToolbar2ClickURLsTarget(4)%>';
break;
};
fJProgressIndeterminateShow();
setTimeout(function (){
window.location.href = strURL + strURLSuffix;
}, 200);
}
function fJProgressIndeterminateShow()
{
var dv1 = document.getElementById("dvIDProgressBarIndeterminate");
dv1.style.display="inline-block";
}
答案 0 :(得分:1)
最后,我使用了此功能,在“保存到主屏幕” iOS webapp /网站中对我非常有用。
setTimeout(function(){
window.location.href = strNewURL;
}, 200);
我可能在Why isnt window.location.href= not forwarding to page using Safari?时偶然发现了这个问题
在这里https://dev.joshmoto.wtf/unearth.ed/wp/看到它对我有用...我对未预加载fontawesome微调器感到内gui,因此有时微调器在跳至下一页之前无法及时渲染。但是您的动画是纯CSS,因此应该没有问题。