【问题标题】:Very large image displaying progressive非常大的图像显示渐进式
【发布时间】:2023-03-05 06:34:01
【问题描述】:


我正在尝试将一些相当大的图像加载到 Web 应用程序中。这些图像中最大的可以是 2800x2800。我加载它们,显示,一切正常。

我的问题是,一旦加载它们:

var img = new Image();
img.src = 'myImageURL';
img.onload = function(){
  //display image
}

大图像在页面上逐渐显示,从上到下就像正在加载一样。

我想直观地删除它,并且只在完全加载并在浏览器中呈现后显示它们。

我也无法更改图像大小,因为这个网络应用程序旨在让用户将图像缩放到原始大小的 100%,所以我必须加载完整的 2800x2800 并将其调整为小。

有谁知道我如何隐藏图像直到它被渲染?我可以隐藏它直到加载,但这基本上就是我正在做的,它是我想要删除的渐进式渲染显示。 谢谢

【问题讨论】:

  • 非常有信心你不会找到解决这个问题的办法,恐怕。您无法控制浏览器以视觉方式将图像绘制到页面上。
  • 你在多个浏览器上测试过这个吗?这听起来像是对浏览器本身的限制,甚至可能是对计算机的限制,具体取决于浏览器如何使用系统资源。

标签: javascript image onload


【解决方案1】:

<img> 标签上使用onload 属性,如下所示:

<img src="huge.jpg" style="display:none" onload="this.style.display='block'">

用任何你想要的效果代替,但onload 是你的钩子。

演示:http://jsfiddle.net/DfCUQ/1/ (注意:每次加载时更新演示中的?nocache=X

【讨论】:

  • 小提琴效果很好,但我看不出我的问题仍然存在。我可能需要深入了解我是如何加载图像的,也许我的服务器上的资源存在一些问题:/
  • 伟大的黑客解决方案 +1
【解决方案2】:

您可以使 css 可见性为“隐藏”,并在图像的位置放置一些文本(或加载微调器等),直到调用 onload 事件。

【讨论】:

  • 这正是我正在做的。图片在onload 之前不会添加到页面中,但是一旦添加,就会逐渐显示,并在浏览器中呈现。
猜你喜欢
  • 1970-01-01
  • 2019-09-27
  • 2013-01-16
  • 2016-01-26
  • 1970-01-01
  • 2011-07-17
  • 2020-04-22
  • 1970-01-01
  • 2013-05-05
相关资源
最近更新 更多