javascript - 如何从 jQuery 动态无延迟地加载 div 中的图像?

标签 javascript jquery

因此,我尝试在悬停时将 jQuery 中的图像加载到另一个 div,而不会延迟加载时间。

<强> HERE IS A WORKING EXAMPLE

原始代码:

HTML:

<div id="hover" data-img="http://lorempixel.com/output/animals-q-c-370-289-5.jpg">
    HOVER OVER ME
</div>

<div id="image">
    <span>
        <img data-img="http://lorempixel.com/output/technics-q-c-370-289-4.jpg" src="http://lorempixel.com/output/technics-q-c-370-289-4.jpg" />
    </span>
</div>

jQuery:

$('#hover').on('mouseenter', function() {
    var newImg = $(this).attr('data-img');
    $('#image > span > img').attr("src", newImg);
});
$('#hover').on('mouseleave', function() {
    var oldImg = $('#image > span > img').attr('data-img');
    $('#image > span > img').attr("src", oldImg);
});

如您所见,动物的图像需要一些时间才能加载。我需要完全消除这种延迟,以便动物的图像在悬停时立即显示。

我尝试过的事情:

  • 我尝试将图像文件大小从 120kb 减少到 20kb, 还是没有运气。
  • 我尝试在页面加载时将图像加载到隐藏的 div 中,以便 它们已经存在于页面中,而不仅仅是存在于 data 属性,仍然没有运气。
<小时/>

PS。我网站上的版本包含 30 多个图像,而示例仅使用了两个。该示例具有非常小的图像,可以通过快速互联网立即加载。我们办公室的网速很糟糕,因此如果图像立即加载,请尝试获取一些更大的图像以查看当前的问题。

最佳答案

尝试简单的预加载技术,例如

$('#hover').on('mouseenter', function() {
    var newImg = $(this).attr('data-img');
    $('#image > span > img').attr("src", newImg);
});
$('#hover').on('mouseleave', function() {
    var oldImg = $('#image > span > img').attr('data-img');
    $('#image > span > img').attr("src", oldImg);
});

//preload here
new Image().src = $('#hover').data('img');

关于javascript - 如何从 jQuery 动态无延迟地加载 div 中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22903544/

相关文章:

javascript - 防止双击导致 HTML 表单中的重复提交

javascript - UIWebview 中的 NSString

javascript - 是否可以将 3D 转换应用于 iframe

javascript - 在另一个内容上设置 Div 位置

php - 在 div 中加载 ajax 后运行 javascript 代码

javascript - 在 Javascript 中转换 UTC 日期的替代方案?

javascript - 为什么这段 JavaScript 代码不起作用?

javascript - 如何使用 ClassName 将条目添加到 DIV

使用 jsonp 来自 Jquery 的 REST WCF url 中的 javascript 错误

javascript - 如果输入集中,则禁用 keydown 快捷方式