【问题标题】:How to keep fluid grid of image thumbnails from shifting during load?如何防止图像缩略图的流体网格在加载期间移动?
【发布时间】:2015-03-14 14:55:35
【问题描述】:

我正在使用 bootstrap 3 流体网格来显示缩略图,并且我喜欢在调整浏览器大小时图像大小的缩放方式。然而,不利的一面是在加载每个页面时都会产生“大爆炸”效果。也就是说,网格开始折叠,然后随着图像的添加而增长。我想一个简单的解决方法是硬编码图像大小,但这会失去我相信的缩放优势。

解决此问题的一种尝试是在每个缩略图之前加载一个透明的占位符图像,这当然会在结果的第一页上兑现,从而更快地扩展网格。在缩略图加载事件的回调中,我删除了占位符。这似乎有帮助,但其他时候我仍然看到这种转变和以前一样糟糕。此外,在连接速度较慢的情况下,您实际上可以暂时看到占位符下方的真实拇指。

<script type="text/javascript">
    $(function(){
        // For each thumbnail, insert a placeholder image.
        // Once the thumb is loaded, remove the placeholder.
        $("[id^=thumb-]").each(function(i, thumb) {
            var $thumb = $(thumb)
            var imgTag = "<img id='ph-" + (i + 1) +
                "' class='placeholder' src='{% static "img/placeholder.png" %}'/>";
            $thumb.parent().prepend(imgTag);
            var $holder = $thumb.prev();
            function loaded() {
                $holder.remove();
            }
            if (thumb.complete) {
                loaded();
            } else {
                $thumb.on('load', loaded);
                $thumb.on('error', function() {
                    console.log('Error with thumbnail placeholders.');
                });
            }
        });
    });
</script>

关于兼容性,我希望至少有一个可以使用旧版浏览器的网站,但它不一定是完美的。

我对修复上面的 Javascript 解决方案没有兴趣,因为我是整体上最好的解决方案。

请查看实时 beta 站点 here 以帮助诊断。 我尝试了一个 jsfiddle,但无法完全重现它。一旦我们了解了问题所在,我将在问题中粘贴更多上下文。

【问题讨论】:

  • 请同时发布您的 html

标签: html image gridview twitter-bootstrap-3 frontend


【解决方案1】:

在这种情况下,我建议将 &lt;img&gt; 标签添加到纯 HTML。然后在你的javascript函数中设置src

您还需要在&lt;img&gt; 标记上设置高度和宽度属性,以便保留它们的空间,以防止在加载图像后重绘页面。您可以使用一个简单的 javascript 函数来执行此操作,该函数确定 window.width,然后设置高度和宽度属性。

类似this

【讨论】:

  • 谢谢布雷特,你能解释一下吗?从 JS 设置 src 有什么好处?另外,有没有办法像我现在所做的那样将计算高度/宽度推迟到流体网格?
  • 通过在 HTML 中添加 &lt;img&gt; 标记,您可以在页面加载时设置高度和宽度,因此保留空间以防止您试图消除的重绘。您可以在页面加载时计算窗口宽度并动态设置宽度,而不是像我一样设置固定的宽度。
猜你喜欢
  • 1970-01-01
  • 2013-09-22
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-01-22
  • 2013-08-19
  • 2013-04-29
  • 1970-01-01
相关资源
最近更新 更多