将双页添加到 turnjs "book"
Adding double pages to a turnjs "book"
我创建了一个网站,访问者可以使用 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);
}
}
}
}
});
<div class="flipbook">
<!-- Insert content dynamically -->
</div>
不幸的是,这并没有像我想要的那样工作,这是正在发生的事情:
我在上面发布的代码插入了页面,但每个双页都只是缩放到其宽度的 50% 并放在一页上。例如,在第 4 页上,我有应该是第 4 和 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
动态添加双页的最佳方法是什么?我在文档或示例中找不到任何相关内容。
由于我页面的图像放在 <div>
的背景中,诀窍是添加一些样式来缩放背景图像并相应地定位它们:
.double{
background-size:200% 100%;
}
.double.even {
background-position: 0% 0%;
}
.double.odd {
background-position: 100% 0%;
}
我创建了一个网站,访问者可以使用 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);
}
}
}
}
});
<div class="flipbook">
<!-- Insert content dynamically -->
</div>
不幸的是,这并没有像我想要的那样工作,这是正在发生的事情:
我在上面发布的代码插入了页面,但每个双页都只是缩放到其宽度的 50% 并放在一页上。例如,在第 4 页上,我有应该是第 4 和 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
动态添加双页的最佳方法是什么?我在文档或示例中找不到任何相关内容。
由于我页面的图像放在 <div>
的背景中,诀窍是添加一些样式来缩放背景图像并相应地定位它们:
.double{
background-size:200% 100%;
}
.double.even {
background-position: 0% 0%;
}
.double.odd {
background-position: 100% 0%;
}