javascript – 隐藏的动画背景图像不加载或加载不动画
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 隐藏的动画背景图像不加载或加载不动画,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3290字,纯文字阅读大概需要5分钟。
内容图文
![javascript – 隐藏的动画背景图像不加载或加载不动画](/upload/InfoBanner/zyjiaocheng/807/f7ab9fe685514f97828862c4d3b7de40.jpg)
我花了一整天的时间来创建一个脚本,在“提交”中隐藏表单并显示隐藏的动画进度条.问题是Internet Explorer不会在隐藏的div中显示动画gif图像.图像是静态的.我访问了很多网站,发现了一个脚本,它使用:
document.getElementById(id).style.backgroundImage =’url(/images/load.gif)’;
最后,我的脚本可以在Internet Explorer,Firefox,Opera中运行但是…… Google Chrome根本不显示图像.我只看到div文本.经过多次测试后,我发现了以下内容:在Google Chrome浏览器中查看背景图片的唯一方法是在页面中的某个位置(隐藏div之外)包含1px维度的相同图像:
<img src="/images/load.gif" width="1" heigh="1" />
这样做的诀窍,但……在这个肮脏的解决方案后,Microsoft Explorer出于某种原因再次将图像显示为静态.所以,我的问题是:有什么方法可以强制Gogle Chrome显示图片吗?谢谢.这是我的脚本:
<script language="JavaScript" type="text/javascript">
function ver (id, elementId){
if (document.getElementById('espera').style.visibility == "visible") {
return false;
}else{
var esplit = document.forms[0]['userfile'].value.split(".");
ext = esplit[esplit.length-1];
if (document.forms[0]['userfile'].value == '') {
alert('Please select a file');
return false;
}else{
if ((ext.toLowerCase() == 'jpg')) {
document.getElementById(id).style.position = 'absolute';
document.getElementById(id).style.display = 'inline';
document.getElementById(id).style.visibility = "visible";
document.getElementById(id).style.backgroundImage = 'url(/images/load.gif)';
document.getElementById(id).style.height = "100px";
document.getElementById(id).style.backgroundColor = '#f3f3f3';
document.getElementById(id).style.backgroundRepeat = "no-repeat";
document.getElementById(id).style.backgroundPosition = "50% 50%";
var element;
if (document.all)
element = document.all[elementId];
else if (document.getElementById)
element = document.getElementById(elementId);
if (element && element.style)
element.style.display = 'none';
return true;
}else{
alert('This is not a jpg file');
return false;
}
}
}
}
</script>
<div id="frmDiv">
<form enctype="multipart/form-data" action="/upload.php" method="post" name="upload3" onsubmit="return ver('espera','frmDiv');">
<input type="hidden" name="max_file_size" value="4194304" />
<table border="0" cellspacing="1" cellpadding="2" width="100%">
<tr bgcolor="#f5f5f5">
<td>File (jpg)</td>
<td>
<input type="file" name="userfile" class="upf" /></td></tr>
<tr bgcolor="#f5f5f5">
<td> </td>
<td>
<input class="upf2" type="submit" name="add" value="Upload" />
</td></tr></table></form>
</div>
<div id="espera" style="display:none;text-align:center;float:left;width:753px;"> <br /> <br /> <br /> <br />
<br />Please wait...<br />
</div>
解决方法:
尝试:
(new Image).src="/images/load.gif";
大G本身使用这种技术在其主页上预加载DNS查找.
UPDATE
由于令人难以置信的-1,我收到了…我需要解释为什么上述可能对那些在不了解给定解决方案的可能性的情况下向下投票的numbskull有效.
谷歌浏览器可以“智能地”通过分析它们是否实际显示在页面上来“智能地”选择要下载的资源(类似于浏览器不下载每个背景图像:在CSS文件中的url(图像)).如果这是真的,则以下情况也可能是真的:
如果要显示“load.gif”图像的时间比图像下载所用的时间少,那么它将显示为根本不显示图像(即使它刚刚被下载).
通过使用'(新图像).src =“image.gif”;’预加载图像方法我们确保图像在浏览器的缓存中就绪,因此在需要时立即可用.
至于为什么Internet Exploder只显示一帧,我不确定.页面中必须有其他变量导致此行为(长时间运行的脚本,限制GIF本身编码的循环数,?).
内容总结
以上是互联网集市为您收集整理的javascript – 隐藏的动画背景图像不加载或加载不动画全部内容,希望文章能够帮你解决javascript – 隐藏的动画背景图像不加载或加载不动画所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。