你这个书为什么不能翻页,而是三页全部展示在了页面上
时间: 2024-04-15 20:24:59 浏览: 165
纯CSS3超酷书架样式404页面动画特效.zip
很抱歉,我之前提供的代码确实没有实现翻页的功能,而是将三页内容都展示在了页面上。如果你想要实现翻页的功能,可以使用turn.js库提供的方法来实现。以下是修改后的代码:
```html
<!DOCTYPE html>
<html>
<head>
<style>
#book {
width: 400px;
height: 600px;
background-color: #f0f0f0;
}
.page {
background-color: white;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.page-content {
padding: 20px;
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/turn.js/4.1.0/turn.min.js"></script>
</head>
<body>
<div id="book">
<div class="page" data-page="1">
<div class="page-content">
<h1>封面</h1>
<p>这是一本书的封面</p>
</div>
</div>
<div class="page" data-page="2">
<div class="page-content">
<h1>第一页</h1>
<p>这是第一页的内容</p>
</div>
</div>
<div class="page" data-page="3">
<div class="page-content">
<h1>第二页</h1>
<p>这是第二页的内容</p>
</div>
</div>
</div>
<script>
$(document).ready(function() {
// 初始化书籍
var book = $("#book").turn({
width: "100%",
height: "100%",
autoCenter: true
});
// 获取元素的旋转角度
function getRotationAngle(element) {
var matrix = new DOMMatrix(getComputedStyle(element).transform);
var angle = Math.round(Math.atan2(matrix.b, matrix.a) * (180 / Math.PI));
return angle;
}
// 监听封面页翻页事件,输出变化后的角度
book.bind("turned", function(event, page, view) {
if (page === 1) {
var currentAngle = getRotationAngle($(".page[data-page='1']")[0]);
console.log("封面当前角度:", currentAngle);
}
});
});
</script>
</body>
</html>
```
在修改后的代码中,我们使用`$("#book").turn({...})`方法初始化书籍,并添加了翻页事件监听器`book.bind("turned", function(event, page, view) {...})`。在翻页事件中,我们获取封面页的旋转角度并输出到控制台。
请保存文件并在浏览器中打开HTML文件。你将看到一本具有翻页功能的书籍,可以通过鼠标点击或拖动页面来实现翻页操作。当翻到封面页时,你可以在控制台中实时获取角度变化,并输出变化后的角度。
希望这次的代码能满足你的需求,如果还有任何问题,请随时提问。
阅读全文