用Turn.js写一本可以左右翻动的书,这本书有8页,有两个封面,一个是第一页,一个是最后一页,封面时硬纸板,在翻第一页封面时,开始监听这个封面,在这个封面翻转程度到一半时,就是再翻转50%就能看到第二页,这个情况下输出111,并且实时再控制台输出这个封面的翻开程度,要实时输出,就是在控制台可以一直看到这一页的翻开程度,要百分比的输出结果
时间: 2024-04-18 08:31:50 浏览: 167
基于Turn.js 实现翻书效果实例解析
你可以使用 turn.js 插件来创建一个可以左右翻动的书,并在第一页封面翻转一半时进行监听并输出相关信息。
首先,确保已经引入 turn.js 的库文件。然后,你可以按照以下示例代码来实现:
```html
<!DOCTYPE html>
<html>
<head>
<title>可左右翻动的书</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/turn.js/4.1.0/turn.min.js"></script>
</head>
<body>
<div id="flipbook">
<div class="hard">封面</div> <!-- 第一页封面 -->
<div>第一页</div>
<div>第二页</div>
<div>第三页</div>
<div>第四页</div>
<div>第五页</div>
<div>第六页</div>
<div>第七页</div>
<div class="hard">封底</div> <!-- 最后一页封底 -->
</div>
<script>
$(document).ready(function() {
$("#flipbook").turn({
width: 800,
height: 400,
autoCenter: true,
// 当页面翻转完成后的回调函数
when: {
turned: function(event, page, view) {
if (page === 1 && view[0].progress >= 0.5) {
console.log("111");
}
}
},
// 针对硬纸板页的配置项
pages: [
{
hard: true, // 封面
content: "封面"
},
{
content: "第一页"
},
{
content: "第二页"
},
{
content: "第三页"
},
{
content: "第四页"
},
{
content: "第五页"
},
{
content: "第六页"
},
{
hard: true, // 封底
content: "封底"
}
]
});
// 实时输出封面翻开程度
var cover = $(".hard").eq(0);
setInterval(function() {
var progress = cover.turn("view")[0].progress;
console.log("封面翻开程度:", (progress * 100).toFixed(2) + "%");
}, 100);
});
</script>
</body>
</html>
```
在上述代码中,我们创建了一个 `flipbook` 容器,并在其中定义了封面页和页面内容。通过 turn.js 插件的初始化配置项,我们设置了书的宽度、高度、自动居中等参数。在 `when` 配置中,我们使用 `turned` 事件来检测是否翻到第一页,并检查翻页进度是否达到一半。如果满足条件,则在控制台输出 `111`。
另外,我们使用 `setInterval` 定时函数来实时输出封面的翻开程度。通过获取封面元素的翻页视图信息,计算翻开程度并输出到控制台。
你可以将上述代码保存为一个 HTML 文件并在浏览器中打开,即可看到左右翻动的书,并在翻到第一页封面一半的时候输出 `111`,同时在控制台实时输出封面的翻开程度。
请注意,以上代码仅为示例,你可以根据实际需求进行修改和扩展。同时,确保你已经正确引入了 jQuery 和 turn.js 的库文件。
阅读全文