javascript - 如何显示进度图标直到所选图像完全加载?

标签 javascript jquery html asp.net image

我有一个使用asp.net设计的分类网站 用户可以在那里发布广告,也可以在广告中添加 5 张图片。我使用文件上传控件,一切正常。

当我保存它时,我将它们保存到两个文件夹中。

1) 完整图像

2) 缩略图

因此,当有人查看广告时,他会看到大图像,并且在下面他会看到与广告相关的其他图像(缩略图)

我这样做是为了减少页面加载时间+带宽。因此,如果用户需要查看完整图像,他必须单击缩略图。

这里我附上预览 enter image description here

这就是缩略图的html代码

<img src='/Images/Thumbnail/{0}' data-url='/Images/Full/{0}' id='{0}' onclick='loadFullImage(this)'/>

这是当有人单击缩略图时设置完整图像路径的脚本

    <script type="text/javascript">
    function loadFullImage(ctrl) {
        var url = ctrl.getAttribute("data-url");
        var imgFull = document.getElementById("imgFull");
        imgFull.src = url;

    }
</script>

希望您现在明白发生了什么。这工作正常。

现在的问题是(实际上我需要调整)当有人单击缩略图时,需要一段时间才能加载图像。这不是一个错误。它的加载时间。所以我想显示进度图像直到完全加载。怎么做?或者有没有办法减少这种延迟?

请注意,当有人单击缩略图时,服务器端不会发生回发事件。只有它会查找完整的图像文件夹。

最佳答案

为此使用ajax,简单地创建一个带有加载gif的div并将其设置为display:none

<div id="loading"><img src="url..." /></div>

然后 cll div 以在用户使用此函数点击 loadFullImage 函数时显示

$('loading').show();

当图像加载完成后,取消设置 div

$('loading').hide();

你的函数将是这样的

<script type="text/javascript">

    function loadFullImage(ctrl) {
        $('loading').show();
        var url = ctrl.getAttribute("data-url");
        var imgFull = document.getElementById("imgFull");
        imgFull.src = url;
        $('loading').hide();

    }
</script>

关于javascript - 如何显示进度图标直到所选图像完全加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41590072/

相关文章:

javascript - 将 HTML 文本放在特定位置但在同一行

javascript - 使用 JCrop 的图形故障

html - 将水平滚动条应用于电子邮件中的宽图像

javascript - jQuery:在 serializeArray 中推送值数组

jQuery/数据表 : replace default filter field/text

javascript - 使用 javascript 重写特定链接,但指向特定目录的链接除外

javascript - 关于函数语法、jQuery datepicker、beforeShowDay 选项的 2 个问题

javascript - 如何捕获信息框关闭事件(Google Maps API V3)

javascript - 无限轮播 slider

javascript - 如何在元素输入中设置 This 而不标记 ID