首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免在替换图像时临时显示'alt‘

如何避免在替换图像时临时显示'alt‘
EN

Stack Overflow用户
提问于 2011-12-13 03:42:38
回答 6查看 114关注 0票数 0

我正在构建一个动态加载内容的网站,根据内容的结果替换图像。然而,当浏览器加载图像时,alt属性通常以一种难看的方式显示。如果可能的话,我想保留alt属性,但是当浏览器下载图片时,图片应该不会闪烁'alt‘属性。有没有人遇到过这个问题并找到了解决方案?

我使用的是jQuery。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-13 03:48:27

您可以“预加载”您的图像,只有当它被加载时,交换src

代码语言:javascript
复制
var tmp = new Image();
tmp.src = "yourimage.png";
tmp.onload = function() {
    $("#actual_image").prop("src", tmp .src);
};
票数 2
EN

Stack Overflow用户

发布于 2011-12-13 03:48:05

您可以在加载图像时暂时支持alt-text。如下所示:

代码语言:javascript
复制
$(function ()
{
    var ATTR = 'alt';

    $('img').each(function ()
    {
        var $this = $(this);
        $this.data(ATTR, $this.prop(ATTR)).removeProp(ATTR);
    }).load(function ()
    {
        var $this = $(this);
        $this.prop(ATTR, $this.data(ATTR);
    });
});

重构后的版本:

代码语言:javascript
复制
$(function ()
{
    var ATTR = 'alt';

    function disableAlt()
    {
        var $this = $(this);
        $this.data(ATTR, $this.prop(ATTR)).removeProp(ATTR);
    }

    function enableAlt()
    {
        var $this = $(this);
        $this.prop(ATTR, $this.data(ATTR);
    }

    $('img').each(disableAlt).load(enableAlt);
});
票数 3
EN

Stack Overflow用户

发布于 2011-12-13 03:49:14

当您更改图像的来源时,请尝试执行以下操作:

代码语言:javascript
复制
$('#image-id').fadeOut(250, function () {
    $(this).attr('src', 'new-source.jpg');
}).on('load', function () {
    $(this).fadeIn(250);
});

这将淡出图像,使其不可见,然后更改其源,当图像加载后,它将淡入。

这是一个演示:http://jsfiddle.net/xSkau/

请注意,.on()是jQuery 1.7中的新功能,与本例中的.bind()相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8479902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档