|
|

楼主 |
发表于 2022-5-27 12:46
|
显示全部楼层
- <style>
- .book {/* 容器 */
- left: -214px; margin-top: 50px; display: flex; align-items: center;
- font: normal 1em sans-serif; width: 1024px; height: 600px;
- perspective: 2000px; cursor: pointer; padding: 10px; position: relative;
- }
- .page {/* 纸张 高度小于父元素30px*/
- padding: 20px;width: 478px; height: 570px; left: 50%; transform-origin: left;
- background: lightseagreen linear-gradient(rgba(255,255,255, .95), rgba(255,255,255, .75));
- box-shadow: inset -3px -3px 6px rgba(255,255,255,.5), 2px 10px 60px rgba(0,0,0,.15);
- transform-style: preserve-3d; position: absolute;
- }
- .page div { width: 100%; height: 100%; }/* 书页 */
- .page div:nth-child(1) { display: block; }/* 单数页 */
- .page div:nth-child(2) { display: none; }/* 双数页 */
- .page div img { width: 100%;} /* img标签:限制宽度 */
- @keyframes rot1{ from { transform: rotateY(0deg); } to { transform: rotateY(-180deg); } }/* 左翻动画 */
- @keyframes rot2{ from { transform: rotateY(-180deg); } to { transform: rotateY(0deg); } }/* 右翻动画 */
- .page p { margin: 0; padding: 4px 0; }/* 各页p标签 */
- .page h2 { font: bold 1.3em sans-serif; padding: 8px 0; margin: 0; }/* 各页h2标题 */
- .cover { background: darkgreen linear-gradient(rgba(255,255,255, .65), rgba(255,255,255, .95)); }/* 封面封底纸张样式 */
- .rnum { position: absolute; bottom: 6px; right: 12px; color: #000; font-size: 10px; }/*右页码*/
- .lnum { position: absolute; bottom: -14px; left: -4px; color: #000; font-size: 10px; }/*左页码*/
- .tit { font: bold 3em / 6em sans-serif; color:olive; text-shadow: 1px 1px 2px gray; letter-spacing: 20px; }/* 书名 */
- .mid { text-align: center; }/* 居中对齐 */
- .right { text-align: right; }/* 右对齐 */
- .red { color: red; }/* 红色文本 */
- </style>
- <div class="book">
- <div class="page cover">
- <div><!-- 封面 -->
- <p class="rnum">花潮出品</p>
- <p class="tit mid">书名</p>
- </div>
- <div><!-- 扉页 -->
- <p class="lnum">bb3</p>
- <h2>扉页</h2>
- </div>
- </div>
- <div class="page">
- <div>
- <p class="rnum">1</p>
- <p>第一页内容</p>
- </div>
- <div>
- <p class="lnum">2</p>
- <p>第二页内容</p>
- </div>
- </div>
- <div class="page">
- <div>
- <p class="rnum">3</p>
- <p>第三页内容</p>
- </div>
- <div>
- <p class="lnum">4</p>
- <p>第四页内容</p>
- </div>
- </div>
- <div class="page">
- <div>
- <p class="rnum">5</p>
- <p>第五页内容</p>
- </div>
- <div>
- <p class="lnum">6</p>
- <p>第六页内容</p>
- </div>
- </div>
- <!-- 加页开始 本行需删掉
- <div class="page">
- <div>
- <p class="rnum">N</p>
- <p>第N页内容</p>
- </div>
- <div>
- <p class="lnum">N+1</p>
- <p>第N+1页内容</p>
- </div>
- </div>
- 加页结束 本行需删掉-->
- <div class="page cover">
- <div><!-- 内封 -->
- <p class="rnum">内封</p>
- <h2>内封</h2>
- </div>
- <div><!-- 封底 -->
- <p class="rnum">花潮出版社2022</p>
- <h2>封底</h2>
- </div>
- </div>
- </div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1904142246.mp3" autoplay="autoplay" loop="loop"></audio>
- <script>
- let book = document.querySelector(".book"), page = document.querySelectorAll(".page"), aud = document.querySelector("#aud");
- let idx = 1, all = page.length, currentPage = 0, auto = 3, timer;//auto为自动翻页间隔时间(秒)
- setzIdx();
- setAuto();
- book.onmousemove = () => { clearTimeout(timer); }
- book.onmouseout = () => { setAuto(); }
- book.onclick = () => { aud.paused ? aud.play() : aud.pause(); }
- function turnpage(){
- if(idx == 1) { //左翻
- if(currentPage != all){
- page[currentPage].style.animation = "rot1 .5s linear forwards";
- page[currentPage].children[0].style.display = "none";
- page[currentPage].children[1].style.display = "block";
- page[currentPage].children[1].style.transform = "rotateY(-180deg)";
- }
- } else { //右翻
- if(currentPage > 0) {
- page[currentPage-1].style.animation = "rot2 .5s linear forwards";
- page[currentPage-1].children[1].style.display = "none";
- page[currentPage-1].children[0].style.display = "block";
- page[currentPage-1].children[1].style.transform = "rotateY(0deg)";
- }
- }
- currentPage += idx;
- if(currentPage >= all) idx = -1;
- if(currentPage <= 0) idx = 1;
- setzIdx();
- }
- function setAuto() {
- clearTimeout(timer);
- timer = setTimeout(() => {
- turnpage();
- setAuto();
- }, auto * 1000);
- }
- function setzIdx(){
- if( currentPage < 0 || currentPage > all -1) return false;
- for(j=0; j<all; j++){
- page[j].style.zIndex = j >= currentPage ? page[j].style.zIndex = all - j : page[j].style.zIndex = j + 1;
- }
- if(currentPage <= all - 1) page[currentPage].style.zIndex = all;
- }
- </script>
复制代码
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|