将双页添加到turnjs“book”

时间:2015-04-01 10:35:31

标签: javascript turnjs

我创建了一个网站,访问者可以使用turnjs浏览一本书。我有页面作为双页的jpgs,我希望它们动态加载。

以下是代码:



var flipbook = $('.flipbook');  
flipbook.turn({
    elevation: 50,
    gradients: true,
    autoCenter: true,
    pages: 118,
    when: {
      missing: function (e, pages) {
        for (var i = 0; i < pages.length; i++) {
          var n = pages[i];
          if(!$(this).turn('hasPage',pages[i])) {
            var pagenum = Math.floor(pages[i] / 2) + 1,
                src="url(/pages/page_" + pagenum + ".jpg)",
                element = $('<div />',{'class': 'double', css:{backgroundImage:src}});
            flipbook.turn('addPage',element,n);
          }
        }
      }
    }
});
&#13;
<div class="flipbook">
<!-- Insert content dynamically -->
</div>
&#13;
&#13;
&#13;

不幸的是,这并不像我想要的那样,在这里发生了什么:

我在上面发布的代码插入了页面,但是每个双页只是缩放到其宽度的50%并放在一页上。例如,在第4页,我应该是第4页&amp; 5和左边的页面我和右边的邻居一样。

我将最后一行更改为flipbook.turn('addPage',element);,希望它会自动添加两个页面,但插入的第一页是.p113而不是.p1

我还将代码更改为

if(0 == n%2 && !$(this).turn('hasPage',pages[i])) {
  var pagenum = Math.floor(pages[i] / 2) + 1,
      src="url(/fileadmin/kollektion/2015/pages/page_" + pagenum + ".jpg)",
      element = $('<div />',{'class': 'double', css:{backgroundImage:src}});
      element.scissor();
      flipbook.turn('addPage',element,n);
  }
}

但这导致只插入了左页。

那么,使用addPage动态添加双页的最佳方法是什么?我在文档或示例中找不到任何相关内容。

1 个答案:

答案 0 :(得分:0)

我解决了。由于我的页面图像放在<div>的背景中,所以诀窍是添加一些样式来缩放背景图像并相应地定位它们:

.double{
    background-size:200% 100%;
}

.double.even {
    background-position: 0% 0%;
}

.double.odd {
    background-position: 100% 0%;
}