我在 javascript 中有这个功能:
function loadPage (url){
showLoadPageGif(); // visibility On
document.location.href = getPath + "/" + url ;
}
当我使用此功能时,GIF 图像显示在屏幕上,但无法正常工作。以前有人打过,有这个问题吗?谢谢
我在 javascript 中有这个功能:
function loadPage (url){
showLoadPageGif(); // visibility On
document.location.href = getPath + "/" + url ;
}
当我使用此功能时,GIF 图像显示在屏幕上,但无法正常工作。以前有人打过,有这个问题吗?谢谢
我最近使用动画 SVG 作为伪元素中的背景图像遇到了这个问题。我故意在我的网络服务器上设置了很大的延迟,以便在window.location = url;
所有其他 CSS 动画和悬停仍然有效,但 SVG cog 卡住之后,我可以留在当前页面。
window.location
在玩了一些之后,我发现如果我提交了一个 GET 表单,而不是更改,动画会继续运行。
var url;
//load & setup loading animation
//then generate and submit form with a slight delay
setTimeout(function(){
var new_form;
new_form = document.createElement('form');
new_form.method = 'GET';
new_form.action = url;
document.body.appendChild(new_form);
new_form.submit();
}, 100)
在 safari 5.1、firefox 24、chrome 32 上测试
我假设您的意思是“GIF动画停止”。
这是正确的行为。由于您转到新页面,因此旧页面的所有资源都被释放。这当然包括 GIF 本身。
您不会“看到”这种情况发生,因为当您分配location.href
.
您需要做的是使用 AJAX 请求新页面,然后在成功处理程序中用新页面替换整个 DOM。
IE6 中有一个错误,它会在您启动 AJAX 请求时停止动画;要解决这个问题,只需src
再次分配图像的属性(即img.src = img.src;
)重新启动它们。
您使用的是哪个浏览器?如果您使用的是 IE,我需要这样做一次:
var loadingFigure = $('#myImage');
var html = loadingFigure.html();
window.location.href = 'myImage';
loadingFigure.html(html);
对于 Firefox 更复杂,您需要使用 iframe 并执行以下操作:
<iframe id="myIframe" src="/images/busy.gif" scrolling="no" frameborder="0"></iframe>
$('#myIframe').attr('src', '/images/busy.gif');
window.location.href = 'mylocation'
$('#myIframe').attr('src', '/images/busy.gif');