首先加载20张图像然后显示页面

时间:2012-09-21 18:30:07

标签: javascript jquery

我正在使用jQuery Booklet插件,并且有一本非常有效的小册子。但是我有一个挂断。这本小册子相当大,有很多图像(大约50张),第一次访问页面时加载速度很慢。我想要做的是采取我目前拥有的脚本并加载前20个图像(大致)然后显示小册子,而其余图像加载在后台。这是我正在使用的脚本,并希望对其进行修改:

JS

$(function() {
  var $mybook       = $('#mybook');
  var $bttn_next        = $('#next_page_button');
  var $bttn_prev        = $('#prev_page_button');
  var $loading      = $('#loading');
  var $mybook_images    = $mybook.find('img');
  var cnt_images        = $mybook_images.length;
  var loaded            = 0;
  //preload all the images in the book,
  //and then call the booklet plugin

  $mybook_images.each(function(){
    var $img    = $(this);
    var source  = $img.attr('src');
    $('<img/>').load(function(){
      ++loaded;
      if(loaded == cnt_images){
        $loading.hide();
        $bttn_next.show();
        $bttn_prev.show();
        $mybook.show().booklet({
         //Booklet Options
        });
      }
    }).attr('src',source);
  });

});

如何修改此代码以加载前20张图片然后显示小册子?请提供示例。

2 个答案:

答案 0 :(得分:1)

我需要确定HTML才能确定,但​​更改定义cnt_images的行应该可以解决问题。改变这一行:

var cnt_images = $ mybook_images.length;

这样说:

var cnt_images = 20;

答案 1 :(得分:1)

查看您发布的逻辑,您只需更改cnt_images = 20即可。如果还有其他依赖于此的逻辑,那么当您检查loaded值时,而不是针对cnt_images进行检查,请将其与20进行核对。