加载页面后图像逐个淡入

发布于 2024-12-12 07:39:57 字数 715 浏览 1 评论 0原文

好吧,这是我当前的工作代码......

$(window).load(function() {
     $("#scroller li").each(function(i) {
          $(this).delay(400*i).fadeIn();
     });
});

加载窗口后,它完美地在一张又一张图像中淡出。但在我的页面上,我有一些链接调用一个 html 文件,该文件在 div 中包含更多图像。这个脚本只是在加载图像时将图像一个接一个地淡入,导致半截图像淡入......

所以我想要的是当文档准备好时,它加载所有图像,然后淡入它们。

我需要使用 jQuery(document).ready(function() 来启动脚本,因此 .bind('load') 是正确的......我认为。我对此很陌生......

这就是我想到的。与,但它不起作用..也许有人可以告诉我为什么......

$(document).ready(function() {
     $("#scroller li").each(function(i) {
          $(this).bind('load', function(){
               $(this).delay(400*i).fadeIn();
          });
      });
  });

Okay so here is my working code currently...

$(window).load(function() {
     $("#scroller li").each(function(i) {
          $(this).delay(400*i).fadeIn();
     });
});

After the window is loaded, it fades in one image after another, perfectly. But on my page I have links that call in an html file that contains more images into a div. This script just fades the images in, one after another WHILE they are loading, resulting in half cut off images fading in...

So what I want is when the document is ready, it loads all the images, then fades them in.

I need to use jQuery(document).ready(function() to start the script, so a .bind('load') is in order... I think.. I am pretty new at this...

This is what I came up with, but it's not working.. Maybe somebody can tell me why...

$(document).ready(function() {
     $("#scroller li").each(function(i) {
          $(this).bind('load', function(){
               $(this).delay(400*i).fadeIn();
          });
      });
  });

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

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

发布评论

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

评论(2

神魇的王 2024-12-19 07:39:57

由于 $(document).ready 会等到整个页面的内容加载完毕后才触发该函数,因此加载已经发生。

您是否尝试过将 li 或 li 启动为隐藏,然后执行以下操作:

$(document).ready(function() {
     $("#scroller li").each(function(i) {
           $(this).delay(400*i).fadeIn();
      });
  });

the load has already happened since $(document).ready waits until the entire page's contents have loaded before it fires the function.

have you tried starting the li or li's as hidden and then just doing this:

$(document).ready(function() {
     $("#scroller li").each(function(i) {
           $(this).delay(400*i).fadeIn();
      });
  });
帥小哥 2024-12-19 07:39:57

听起来您想预加载图像。如果图像是预加载的,它们将被缓存,因此当您第一次显示它们时,整个图像应该显示而不是被切断。您只需使用 `$("").attr('src', 'source/of/image'); 即可预加载图像。这会将图像加载到内存中并提前缓存它们。它不会将它们附加到 DOM 中。

It sounds like you want to preload the images. If the images are preloaded, they will be cached so when you display them for the first time the entire image should display instead of being cut off. You can preload images just by using `$("").attr('src', 'source/of/image'); This loads the images in memory and should cache them ahead of time. It will not append them to the DOM.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文