HTML中的IFrame

时间:2009-03-25 11:46:32

标签: javascript html

我在html中使用iframe。将不同的html页面加载到iframes.in html页面我有图像。每当我将图像加载到iframe中时,我都会闪烁。

我们可以通过使用Iframe来停止闪烁

怎么办?

3 个答案:

答案 0 :(得分:0)

嗯,我不完全确定你想要摆脱什么样的闪烁,但我想它与浏览器加载有关,然后用图像显示你的新页面。

除了在背景上将下一张图片加载到另一张iframe然后在当前可见和新加载的iframe之间切换之外,我无法想到任何好方法。

更大的问题是,为什么你需要使用iframe?你是从一个你不拥有的网站上加载的东西吗?如果没有,请考虑ajax和其他此类技术。

答案 1 :(得分:0)

您可以采取一些措施来帮助解决这个问题。

首先,确保指定图像的宽度和高度。然后,浏览器将为图像保留空间,而不是在知道图像大小时调整保留空间的大小。

如果您想提供一个示例,我们可以在必要时讨论预加载。

答案 2 :(得分:0)

您可以通过向。添加onLoad回调事件来避免闪烁。一旦你onLoad回调激发,你就可以淡入iframe及其内容。这就是Lazy Loading的工作原理。例如:

<iframe id="ifrm" src="http://www.example.com" onload="showImage()"></iframe>

在上面的示例中,Iframe将呈现您的内容。一旦上面的iframe完成加载,它将尝试调用一个名为showImage()的函数。您所要做的就是在脚本文件中定义showImage。您现在可以使用此函数来查找iframe DOM节点并更改样式以淡入或显示它(显示:块)。例如:

<script>
 function showImage() {
  var iframe = document.getElementById('ifrm'); 
  iframe.style.opacity = 1; // using opacity. You can transition this
  iframe.style.display = 'block' // using display. No transition
 }

</script>

如果您想将其淡入,可以在iframe中添加一些css,如下所示。例如:

#ifrm {
  opacity: 0; // Before the iframe load, make sure it is not visible
  transition: 0.3s // This will make your iframe fade in on load
}

希望这有帮助。