预加载图像以稍后在单击事件 jQuery 上显示

发布于 2024-12-20 04:35:25 字数 443 浏览 1 评论 0原文

我有一个网页,其中使用图像从服务器调用大量图像 scr 属性。

我创建了一个由 td click 触发的函数。

function GoToStep(stepNo) {
 var imgSrc = $("#h1" + stepNo).val();
        $(".img_vertical").css("background-image", "url(" + imgSrc + ")");
}

现在的问题是这样的。对于较慢的连接,图像会在一些之后出现 片刻。

我可以预加载图像以避免用户点击时的等待时间吗 TD

我见过一些 jquery 函数来预加载图像。

请告诉我如何实现它。

I have a web page where lots of images called from server using image
scr attribute.

I have created a function like which is triggered by td click.

function GoToStep(stepNo) {
 var imgSrc = $("#h1" + stepNo).val();
        $(".img_vertical").css("background-image", "url(" + imgSrc + ")");
}

Now the problem is this. For slower connections the images come after some
moment.

Can I pre load images to avoid waiting time when user clicks
td?

I have seen some jquery function to pre load images.

Kindly give some idea how can I achieve it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天生の放荡 2024-12-27 04:35:25

预加载图像相当于加载图像但不显示它。因此,您可以轻松地这样做:

<img src="image.png" alt="" style="display:none;"/>

现在,一旦 html 开始渲染,该图像就会被加载。每当您需要使用此图像作为显示或背景时,只需将地址设置为 image.png,它将自动从浏览器的缓存中获取。

Pre-loading an image is equivalent to loading an image but never displaying it. So, you can easily do it like this:

<img src="image.png" alt="" style="display:none;"/>

Now this image will be loaded as soon as the html starts rendering. Whenever you need to use this image as a display or background, just set the address to image.png and it will automatically be fetched from browser's cache.

就此别过 2024-12-27 04:35:25

这可以使用一些 JavaScript 函数来完成。引用另一个问题

function preload(arrayOfImages) {
    $(arrayOfImages).each(function(){
        $('<img/>')[0].src = this;
        // Alternatively you could use:
        // (new Image()).src = this;
    });
}

// Usage:

preload([
    'img/imageName.jpg',
    'img/anotherOne.jpg',
    'img/blahblahblah.jpg'
]);

解释 JavaScript 预加载器的工作原理(不同的问题

[...] 它的工作方式很简单,就是创建一个新的 Image 对象并设置
它的src,浏览器将去抓取图像。我们不是
将这个特定的图像添加到浏览器中,但是当时间到来时
通过我们设置的任何方法在页面中显示图像,
浏览器已经将其保存在缓存中,并且不会去获取它
再次。 [...]

所以在你的情况下,你应该使用类似的东西

$(function() {
    // Do stuff when DOM is ready
    preload([
        'img/bg1.jpg',
        'img/bg2.jpg',
        'img/bg3.jpg'
    ]);
});

This can be done using some javascript functions. Quoting from another question.

function preload(arrayOfImages) {
    $(arrayOfImages).each(function(){
        $('<img/>')[0].src = this;
        // Alternatively you could use:
        // (new Image()).src = this;
    });
}

// Usage:

preload([
    'img/imageName.jpg',
    'img/anotherOne.jpg',
    'img/blahblahblah.jpg'
]);

Explanation of how javascript preloaders work (different question)

[...] The way it works is simply by creating a new Image object and setting
the src of it, the browser is going to go grab the image. We're not
adding this particular image to the browser, but when the time comes
to show the image in the page via whatever method we have setup, the
browser will already have it in its cache and will not go fetch it
again. [...]

So in your case, you should use something like

$(function() {
    // Do stuff when DOM is ready
    preload([
        'img/bg1.jpg',
        'img/bg2.jpg',
        'img/bg3.jpg'
    ]);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文