多张图片切换实现书本翻页特效

awdSADASA 2024-06-28 11:39:01

实现多张图片切换实现书本翻页特效,可以通过一些简单的HTML、CSS和JavaScript来实现。以下是一个基本的示例代码,演示了如何创建一个简单的书本翻页效果:

HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Book Page Flip Effect</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="book">
    <div class="page">
      <img src="page1.jpg" alt="Page 1">
    </div>
    <div class="page">
      <img src="page2.jpg" alt="Page 2">
    </div>
    <div class="page">
      <img src="page3.jpg" alt="Page 3">
    </div>
    <!-- Add more pages as needed -->
    <div class="page">
      <img src="pageN.jpg" alt="Page N">
    </div>
  </div>

  <script src="script.js"></script>
</body>
</html>

 

CSS (styles.css)

body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #f0f0f0;
  margin: 0;
}

.book {
  perspective: 1000px;
  width: 400px; /* Adjust width as needed */
  height: 300px; /* Adjust height as needed */
  position: relative;
}

.page {
  position: absolute;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 1s;
  backface-visibility: hidden;
}

.page img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page.right {
  transform: rotateY(-180deg);
}

.page.left {
  transform: rotateY(0deg);
}

 

JavaScript (script.js)

const pages = document.querySelectorAll('.page');

let currentPage = 0;

function flipNext() {
  if (currentPage < pages.length - 1) {
    pages[currentPage].classList.add('right');
    currentPage++;
    pages[currentPage].classList.remove('right');
  }
}

function flipPrev() {
  if (currentPage > 0) {
    pages[currentPage].classList.add('left');
    currentPage--;
    pages[currentPage].classList.remove('left');
  }
}

document.addEventListener('keydown', function(event) {
  if (event.key === 'ArrowRight') {
    flipNext();
  } else if (event.key === 'ArrowLeft') {
    flipPrev();
  }
});

 

解释和使用方法:

  1. HTML 结构

    • 使用 <div class="book"> 作为整个书本的容器。
    • 每个页面使用 <div class="page"> 包裹一张图片,图片通过 <img> 标签加载。
    • 可以根据需要添加更多的页面,每个页面的样式和内容可以自行调整。
  2. CSS 样式

    • .book 类定义了书本的外观和基本样式,包括透视效果 (perspective) 和尺寸。
    • .page 类定义了每一页的样式,使用 transform-style: preserve-3d; 实现立体效果。
    • .page.left 和 .page.right 类定义了页面翻页时的动画效果,通过 transform: rotateY(-180deg); 和 transform: rotateY(0deg); 实现翻页效果。
  3. JavaScript 功能

    • flipNext() 和 flipPrev() 函数实现了向前翻页和向后翻页的功能。
    • 监听键盘事件 (keydown) 实现了通过键盘箭头键控制翻页的功能。

如何使用:

  • 将图片准备好,分别命名为 page1.jpgpage2.jpgpage3.jpg 等,并将它们放置在与HTML文件同一目录下。
  • 将以上的 HTML、CSS 和 JavaScript 分别保存到 index.htmlstyles.cssscript.js 文件中。
  • 在浏览器中打开 index.html 文件,即可看到一个带有书本翻页特效的页面。
  • 可以通过点击页面或者使用键盘的左右箭头键来进行页面切换和翻页效果。
...全文
190 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

10

社区成员

发帖
与我相关
我的任务
社区描述
一个讨论休闲、娱乐和工作生活平衡的在线社区。
前端软件工程 个人社区
社区管理员
  • 2401_83810323
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧