【问题标题】:jQuery Cycle Plugin: How to preload first images with a loading background gif then fade in Cycle Slideshow?jQuery Cycle Plugin:如何使用加载背景 gif 预加载第一张图像,然后淡入 Cycle Slideshow?
【发布时间】:2012-10-03 06:47:44
【问题描述】:

我正在努力解决这个问题,也许你们中的一些人可以帮忙......

  • 我在 www.theoribeiro.com 使用 jQuery Cycle 插件有一个带有大图像的主页幻灯片

  • 图像很大,有时连接速度很慢(但即使在快速连接中),幻灯片开始的行为非常难看,会突然显示图像或加载一半。

  • 我想确保在幻灯片开始之前至少加载 2 或 3 张图片,同时我想运行加载动画 gif,然后我想淡入第一张图片。

我在互联网和论坛上进行了很多搜索,并在我对 javascript 和 jQuery 知识有限的情况下尝试了很多东西,但无法找到解决方案。

任何帮助将不胜感激!!!

【问题讨论】:

标签: jquery cycle preload fadein


【解决方案1】:

在加载图像之前不要初始化 Cycle 插件。使用像这样的预加载脚本 - http://jquery-howto.blogspot.com/2009/02/preload-images-with-jquery.html 并在您隐藏 2-3 张图像后,您可以初始化 Cycle 插件。因为您的图像已经在缓存中,所以显示一半的图像应该没有问题。默认情况下显示加载图像并在初始化 Cycle 插件后将其隐藏。

//回应第一条评论

您可以使用这样的插件 - http://plugins.jquery.com/project/ImageLoader 并使用 PHP 生成 javascript。例如:

$("#slideShow").imageLoader({
   images: [
    <?php
        // You can populate this array from readin a directory or manually it is your choice.
        $images = array('1.jpg', '2.jpg');
        $l = count($images);
        for(int $i=1; $i<$l; $i++) {
            echo ($i>0 ? ',' : '') . "{src: '" . $v . "'}";
        }
    ?>
    ]}, function () {
        $('#slideShow').cycle();
    });

【讨论】:

  • 嗨,Ivo,非常感谢您的快速响应!我查看了您发送的链接,但我不太清楚它如何为我工作,因为:-我的 html 页面是通过 PHP 动态创建的,所以我不知道我需要预加载的确切图像才能在jQuery 预加载。 -我可以修改 PHP 输出,以便图像是锚标记、列表项、div 或其他任何内容中的链接,但我无法提前知道它们是什么图像。 - 尽管我构建了整个页面,但我对 jQuery 或 Javascript 的了解非常有限。如果有人愿意教一些东西,我一定会学习!谢谢!!
  • 我修改了我的答案以解决您的问题。
  • 嗨,Ivo,非常感谢您的反馈。我会研究它,虽然我也会继续寻找一个 100% 的 jQuery 解决方案而不会弄乱 PHP 文件,因为我宁愿只在 PHP 中更改图像容器的输出......这是因为我使用的是 wordpress 插件(NextGen Gallery)生成图像列表并与插件 PHP 混为一谈,这使得升级等变得更加困难......在未来。一个纯粹的 jQuery 解决方案会很干净! :) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多