如何使用jquery为carousel预加载图像?

时间:2010-04-13 06:36:11

标签: jquery image preload

我使用了jquery stepcarousel插件,它运行正常...但是如何预加载插件使用的图像......我正在使用它,

<div id="mygallery" class="stepcarousel">
      <div class="belt">
          <div class="panel">
            <img src="Images/img1.jpg" />
          </div>
          <div class="panel">
            <img src="Images/img2.jpg" />
          </div>
      </div>
</div>
<script type="text/javascript">

    stepcarousel.setup({
        galleryid: 'mygallery', //id of carousel DIV
        beltclass: 'belt', //class of inner "belt" DIV containing all the panel DIVs
        panelclass: 'panel', //class of panel DIVs each holding content
        autostep: { enable: true, moveby: 1, pause: 3000 },
        panelbehavior: { speed: 500, wraparound: false, persist: true },
        defaultbuttons: { enable: true, moveby: 1, leftnav: ['Images/lft_arrow.jpg', -5, 220], rightnav: ['Images/rit_arrow.jpg', -5, 220] },
        statusvars: ['statusA', 'statusB', 'statusC'], //register 3 variables that contain current panel (start), current panel (last), and total panels
        contenttype: ['inline'] //content setting ['inline'] or ['ajax', 'path_to_external_file']
    })

</script>

如何预加载mygallery div使用的图像,以避免闪烁.....

2 个答案:

答案 0 :(得分:1)

在处理许多图像时,预加载不是一个好习惯,因为它会减慢用户的体验。 LazyLoading是加载图像的首选方式。但是对于你的具体问题,我希望这会有所帮助。

window.load是在DOM中加载所有元素时触发的事件。以下文章也使用相同的流程: http://www.appelsiini.net/2007/6/sequentially-preloading-images

答案 1 :(得分:1)

我不知道你是否愿意考虑这一点。但我曾经在你的位置,我找到的最好的方法是将整个#mygalley的东西放在一个单独的页面中,并从stepcarousel的ajax功能中调用它们。他们看起来不错。试试吧

但又一次。我认为顺利显示ajax加载器和加载时的淡化图像是整洁的。你可能会想到它的废话。