在加载我的[动画]幻灯片时,我想显示节目合作者的[纯文本]信用,并使观众按照推荐的方式进入完整的[黑色]屏幕。现在,只要节目的第一张图像出现在屏幕上,这些信用就必须消失[淡出],尽管有些重叠似乎对我来说是可以接受的。 由于不同浏览器的加载时间不同,也取决于宽带连接速度,客户端的硬件等,我想确保观众[客户]有足够的时间阅读积分,比如至少5秒。
从逻辑上讲,这似乎很容易:
-page加载时间[LT]这里定义为新浏览器窗口[获得焦点]的打开与节目的第一个图像的外观之间的间隔[randomized] - 读取本地客户端[查看器]的时间[RT],比如5秒 - .. SetTimeout变量[ST]增加剩余时间,以防LT <五 当然,这里我需要一个可以计算的参考点,但是我如何计算定义的LT,这可能不是整页的加载时间'。
1)如果LT> RT [加载时间超过阅读时间]我仍然希望积分留在屏幕上,否则黑屏太无聊,或者观众可能认为该节目已经崩溃。 [此选项似乎由onLoad语句捕获(见下文)]。因此,在这种情况下ST = 0
2)如果LT&lt;在观众可以阅读之前,RT或避免积分闪现。 在这种情况下,观众不止一次地观看节目[我的目标是btw],然后在她下次开始节目时被浏览器缓存。 如果是,那么ST = RT-LT,这迫使信用继续叠加在图像上,因为页面已经被加载。
ad 1)一旦节目被缓存,MS Internet Explorer似乎忽略了ST。由于我无法控制客户端浏览器设置,我不知道如何处理这个问题。节目的开头是展示演职员表的唯一场所,因为节目永远不会结束。
ad 2)有时Firefox会出于某种原因继续加载节目[虽然图像已经显示]或“等待服务器”。由于onLoad声明,我认为这些学分显示的时间太长了。那么,在这种情况下如何停止显示信用?
我的例子:
function verberg(id) {
document.getElementById(id).style.visibility = "hidden";
// setTimeout(function() {verberg(id)},5000); --have to replace the fixed number by [ST]
}
.
.
</head>
<body onload="setTimeout(function() {verberg('loading')},5000);"> .
<div style="text-align:center" id="loading">credits...........</div>
全屏查看我的节目[刚刚开始] [无需用户互动]
[http://www.atelierfransvandestaak.nl/slideshow.html][1] [Chrome, Firefox, Safari]
[http://www.atelierfransvandestaak.nl/ieslideshow.html][2] [Internet Explorer]
在[1]中插入了一个实时视频流,Internet Explorer不支持这种视频流,因此在[2]中用相同视角的快照替换。
如果有的话,我非常感谢你建议使用crossbrowser解决方案。 提前致谢, Wim Schlebaum
自己解决了这个问题