使用CSS做出3D翻页效果

这次给大家带来使用CSS做出3D翻页效果,使用CSS做出3D翻页效果的注意事项有哪些,下面就是实战案例,一起来看一下。

今天开始~小编将与大家分享一系列的web前端特效荟萃,喜欢把玩儿炫酷效果的小伙伴快快看过来^_^ ,希望大家喜欢呦~

使用CSS做出3D翻页效果

第一期,给大家分享一个使用纯CSS实现书籍3D翻页效果, 相关CSS代码如下:

    cloth     html,body {  height:100%;  overflow: hidden;}body {  background: -webkit-radial-gradient(#E4CEA6, #9C8763);  background: radial-gradient(#E4CEA6, #9C8763);  -webkit-perspective: 900px;          perspective: 900px;  margin: 0;}#flip {  -webkit-animation: wrapper 6s ease-in-out infinite;          animation: wrapper 6s ease-in-out infinite;  height: 350px;  width: 253px;   position: absolute;  left: 50%;  top: 30%;  -webkit-transform: translateZ(-10px) rotateX(60deg) rotateZ(29deg)!important;          transform: translateZ(-10px) rotateX(60deg) rotateZ(29deg)!important;  -webkit-transform-style: preserve-3d;          transform-style: preserve-3d;  -webkit-transform-origin: 0 0 0;          transform-origin: 0 0 0;}@-webkit-keyframes wrapper {  50% {    -webkit-transform: translateZ(-10px) rotateX(60deg) rotateZ(29deg) rotateY(180deg);            transform: translateZ(-10px) rotateX(60deg) rotateZ(29deg) rotateY(180deg);  }}@keyframes wrapper {  50% {    -webkit-transform: translateZ(-10px) rotateX(60deg) rotateZ(29deg) rotateY(180deg);            transform: translateZ(-10px) rotateX(60deg) rotateZ(29deg) rotateY(180deg);  }}#flip p {  height: 350px;  width: 24px;  position: absolute;  left: calc(100% - 1px);  -webkit-transform-origin: 0 100%;          transform-origin: 0 100%;  -webkit-transform-style: preserve-3d;          transform-style: preserve-3d;  background-size: 253px 350px;}#flip #front, #flip #front p {  background-image: url(http://img.hoop8.com/attachments/1512/846611208706.png);  box-shadow: inset rgba(255,255,255,0.3) 0px -1px 0 0,#35582C 0px 1px 0px 0px;}#flip #front > p > p > p > p > p > p > p > p > p > p {   box-shadow: inset rgba(255,255,255,0.3) -1px -1px 0 0, #35582C 1px 1px 0px 0px;}#flip #back { -webkit-transform: rotateY(.2deg); transform: rotateY(.2deg); } /* avoid pages overlap */#flip #back,#flip #back p {  background-image: url(http://img.hoop8.com/attachments/1512/846611208706.png); }#flip > p {  left: 0;  background-position-x: 0; }#flip p > p { background-position-x: -23px; -webkit-animation: page 6s ease-in-out infinite; animation: page 6s ease-in-out infinite; }#flip p > p > p { background-position-x : -46px; } #flip p > p > p > p { background-position-x : -69px; }#flip p > p > p > p > p { background-position-x : -92px; }#flip p > p > p > p > p > p { background-position-x : -115px; }#flip p > p > p > p > p > p > p { background-position-x : -138px; }#flip p > p > p > p > p > p > p > p  { background-position-x : -161px; }#flip p > p > p > p > p > p > p > p > p { background-position-x : -184px; }#flip p > p > p > p > p > p > p > p > p > p { background-position-x : -207px; }#flip p > p > p > p > p > p > p > p > p > p > p { background-position-x : -229px; }/* the more pieces you have, the smoother the bend is */@-webkit-keyframes page {  15% { -webkit-transform: rotateY(-10deg); transform: rotateY(-10deg); }  50% { -webkit-transform: rotateY(-2deg); transform: rotateY(-2deg); }  65% { -webkit-transform: rotateY(10deg); transform: rotateY(10deg); }  100% { -webkit-transform: rotateY(0deg); transform: rotateY(0deg); }}@keyframes page {  15% { -webkit-transform: rotateY(-10deg); transform: rotateY(-10deg); }  50% { -webkit-transform: rotateY(-2deg); transform: rotateY(-2deg); }  65% { -webkit-transform: rotateY(10deg); transform: rotateY(10deg); }  100% { -webkit-transform: rotateY(0deg); transform: rotateY(0deg); }}#book {  width: 248px;  height: 350px;  position: absolute;  left:50%;  top: 30%;  -webkit-transform: translate3d(0px,0px,-10px) rotateX(60deg) rotateZ(29deg);          transform: translate3d(0px,0px,-10px) rotateX(60deg) rotateZ(29deg);  -webkit-transform-style: preserve-3d;          transform-style: preserve-3d;  -webkit-transform-origin: 0 0 0;}@-webkit-keyframes book {  25% {    box-shadow: inset rgba(0,0,0,.2) 0px 0 50px -140px;  }  50% {    box-shadow: inset rgba(0,0,0,.2) 0px 0 50px -140px;  }  100% {    box-shadow: inset rgba(0,0,0,.2) 510px 0 50px -140px;  }}@keyframes book {  25% {    box-shadow: inset rgba(0,0,0,.2) 0px 0 50px -140px;  }  50% {    box-shadow: inset rgba(0,0,0,.2) 0px 0 50px -140px;  }  100% {    box-shadow: inset rgba(0,0,0,.2) 510px 0 50px -140px;  }}#book #top {  -webkit-animation: book 6s ease-in-out infinite;          animation: book 6s ease-in-out infinite;  background: url(http://img.hoop8.com/attachments/1512/900611208706.png);  background-size: 100% 100%;  background-position: 100%;  box-shadow: inset rgba(0,0,0,0.2) 510px 0 50px -140px;  height: 350px;  width: 248px;  position: absolute;  left: 0;  top: 0;}#book #bottom {  background: #E7DED1;  box-shadow: rgba(83, 53, 13, 0.2) 4px 2px 1px,              #35582C 1px 1px 0px 0px;  height: 350px;  width: 253px;  position: absolute;  -webkit-transform: translateZ(-40px);          transform: translateZ(-40px);  left: 0;  top: 0;}#book #shadow {  -webkit-animation: shadow 6s ease-in-out infinite;          animation: shadow 6s ease-in-out infinite;  box-shadow: inset rgba(83, 53, 13, 0) -200px 0 150px -140px;  height: 350px;  width: 248px;  position: absolute;  left: -100%;  top: 0;  -webkit-transform: translateZ(-40px);          transform: translateZ(-40px);}@-webkit-keyframes shadow {  20% {    box-shadow: inset rgba(83, 53, 13, 0) -200px 0 150px -140px;  }  50% {     box-shadow: inset rgba(83, 53, 13, 0.3) -350px 0 150px -140px;  }  60% {     box-shadow: inset rgba(83, 53, 13, 0) -200px 0 150px -140px;  }}@keyframes shadow {  20% {    box-shadow: inset rgba(83, 53, 13, 0) -200px 0 150px -140px;  }  50% {     box-shadow: inset rgba(83, 53, 13, 0.3) -350px 0 150px -140px;  }  60% {     box-shadow: inset rgba(83, 53, 13, 0) -200px 0 150px -140px;  }}#book #front {  background: -webkit-linear-gradient(top,#FCF6EA, #D8D1C3);  background-size: 100% 2px;   box-shadow: inset #C2BBA2 3px 0 0px, #35582C -2px 1px 0px 0px;  height: 40px;  width: 251px;    left: -3px;  position: absolute;  bottom: -40px;  -webkit-transform: rotateX(-90deg);          transform: rotateX(-90deg);  -webkit-transform-origin: 50% 0;          transform-origin: 50% 0;  border-top-left-radius: 5px;  border-bottom-left-radius: 5px;}#book #right {  background: -webkit-linear-gradient(left,#DDD2BB, #BDB3A0);  background-size: 2px 100%;   box-shadow: inset rgba(0,0,0,0) 0 0 0 20px;  height: 100%;  width: 40px;  position: absolute;  right: -40px;  top: 0;  -webkit-transform: rotateY(90deg);          transform: rotateY(90deg);  -webkit-transform-origin: 0 50%;          transform-origin: 0 50%;}h4 {  position: absolute;  bottom: 20px;  left: 20px;  margin: 0;  font-weight: 200;  opacity: 1; font-family: sans-serif;  color: rgba(0,0,0,0.3); }/* bookmark */#bookmark {  position: absolute;  -webkit-transform: translate3d(20px,350px,-16px);          transform: translate3d(20px,350px,-16px);  -webkit-transform-style: preserve-3d;          transform-style: preserve-3d;}#bookmark p {  background: rgb(151, 88, 88);  box-shadow: rgb(133,77,77) 1px 0;  height: 10px;  width: 20px;  position: absolute;  top: 9px;  -webkit-transform: rotateX(-14deg);          transform: rotateX(-14deg);  -webkit-transform-origin: 50% 0;          transform-origin: 50% 0;  -webkit-transform-style: preserve-3d;          transform-style: preserve-3d;}#bookmark > p > p {  background: -webkit-linear-gradient(top, rgb(151, 88, 88), rgb(189, 123, 123), rgb(151, 88, 88));  background: linear-gradient(top, rgb(151, 88, 88), rgb(189, 123, 123), rgb(151, 88, 88));}#bookmark > p > p > p {  background: -webkit-linear-gradient(top,rgb(151, 88, 88),rgb(133, 77, 77));  background: linear-gradient(top,rgb(151, 88, 88),rgb(133, 77, 77));}#bookmark > p > p > p > p {  background: none;  border-top: 0px solid transparent;  border-right: 10px solid rgb(133, 77, 77);  border-bottom: 10px solid transparent;  border-left: 10px solid rgb(133, 77, 77);  height: 0;  width: 0;}#bookmark-shadow {  background: -webkit-linear-gradient(top,rgba(83, 53, 13, 0.25),rgba(83, 53, 13, 0.11));  background: linear-gradient(top,rgba(83, 53, 13, 0.25),rgba(83, 53, 13, 0.11));  height: 15px;  width: 20px;  position: absolute;  -webkit-transform: translate3d(12px,350px,-25px) rotateX(-90deg) skewX(20deg);          transform: translate3d(12px,350px,-25px) rotateX(-90deg) skewX(20deg);  -webkit-transform-origin: 0 0;          transform-origin: 0 0;}        

CSS实现3D翻书效果

相信看了本文案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

推荐阅读:

立即学习“前端免费学习笔记(深入)”;

H5中APP监听返回事件处理

h5实现多图片预览上传及点击可拖拽控件

以上就是使用CSS做出3D翻页效果的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1609138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
css3如何做出小于一像素的细线
上一篇 2025年12月24日 00:37:18
清除css浮动的方法
下一篇 2025年12月24日 00:37:24

相关推荐

  • VSCode怎么编写地图定位_VSCode集成地图API开发位置服务应用教程

    答案是集成地图API实现定位需选择服务商、引入SDK、初始化地图并调用定位功能。具体为:在VSCode中创建Web项目,引入百度等地图API的SDK,通过HTML页面加载地图容器,使用JavaScript初始化地图实例,并结合浏览器Geolocation API或地图SDK自带控件获取位置,最后添加…

    2026年8月29日
    000
  • ThinkPHP 6 环境配置(Nginx/Apache + PHP 8)

    配置 thinkphp 6 环境需要在 nginx 或 apache 上结合 php 8 进行设置。1) nginx 配置:编辑 nginx.conf 文件,设置 server 块以正确处理 php 文件。2) apache 配置:在 httpd.conf 文件中添加 virtualhost 配置,…

    2026年8月29日
    200
  • Mac+IDEA+百度富文本UEditor

    Mac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditor

    最近,我在项目中需要嵌入一个富文本编辑器,考虑到百度ueditor的强大功能,决定使用它。然而,从%ignore_a_1%+eclipse环境转到mac+idea后,遇到了几个问题。经过一番努力,终于解决了这些问题,现分享我的经验。 环境:Mac + IDEA + UEditor 基于 Maven+…

    2026年8月29日 用户投稿
    200
  • 如何解决HTML解析问题?使用paquettg/php-html-parser可以!

    可以通过一下地址学习composer:学习地址 在开发一个需要从网页中提取特定数据的项目时,我遇到了一个棘手的问题:如何高效地解析和操纵html内容。尝试了几种方法后,我发现这些方法要么过于复杂,要么不够灵活,无法满足我的需求。最终,我找到了paquettg/php-html-parser这个库,它…

    用户投稿 2026年8月29日
    400
  • VSCode怎么更改鼠标颜色_VSCode自定义鼠标指针颜色与样式教程

    答案:可通过修改VSCode设置自定义光标颜色、样式、粗细及闪烁方式以提升编码体验。具体包括在settings.json中配置editor.cursorStyle、editor.cursorWidth、editor.cursorBlinking,以及通过workbench.colorCustomiz…

    2026年8月28日
    100
  • 推荐几款好用的文本编辑器

    推荐几款好用的文本编辑器推荐几款好用的文本编辑器推荐几款好用的文本编辑器推荐几款好用的文本编辑器

    作为程序员,编写和查看代码是日常工作的重要部分。今天,我将为大家介绍几款实用的文本编辑器。 Sublime Text 是一款轻量、简洁、高效且跨平台的编辑器。 Sublime Text的特色功能包括: 出色的扩展功能,官方称为安装包(Package)。它没有传统的右侧滚动条,而是用代码缩略图代替,这…

    2026年8月28日 用户投稿
    200
  • 如何解决PHP中生成随机内容的问题?使用pragmarx/random库可以!

    可以通过一下地址学习composer:学习地址 在开发一个php项目时,我需要生成各种随机内容,包括字符串、数字和符合特定模式的文本。这个需求看似简单,但实际上却充满了挑战。最初,我尝试使用php的内置函数如rand()和mt_rand(),但这些函数生成的随机数不够安全,无法满足我的需求。此外,我…

    用户投稿 2026年8月28日
    100
  • 如何清理浏览器缓存_各浏览器缓存清除指南

    清理浏览器缓存是指删除浏览器为加速网页加载而存储的临时文件,如图片、css、javascript等;2. 主要目的是解决网页显示错乱、加载旧内容等问题,并释放硬盘空间;3. 操作核心是进入浏览器设置或使用快捷键,选择清除数据类型时务必勾选“缓存的图片和文件”;4. 不同浏览器操作路径略有差异:chr…

    2026年8月28日
    200
  • VSCode怎么建立外部样式_VSCode链接外部CSS文件方法教程

    首先创建style.css文件并编写样式,然后在HTML的head中通过link标签引入,最后用Live Server插件实现实时预览;若样式未生效,需检查路径、语法、优先级、缓存及HTML结构,并利用开发者工具调试;大型项目应按模块或页面拆分CSS,结合预处理器、BEM规范和CSS Reset提升…

    2026年8月28日
    200
  • 悟空浏览器如何设置打印网页时不带页眉页脚_悟空浏览器打印网页去掉页眉页脚方法

    在悟空浏览器中打印网页时,可通过打印预览设置取消页眉页脚:打开打印界面后展开更多设置并取消勾选“页眉和页脚”;2. 使用开发者工具添加CSS样式@media print { @page { margin: 0; } }可彻底去除页眉页脚及边距;3. 或将网页导出为PDF:选择虚拟PDF打印机并关闭页…

    2026年8月28日
    100
  • HTTP1.1与HTTP2的区别_HTTP1.1与HTTP2有哪些区别

    http/2通过多路复用在单个tcp连接上并行传输多个独立的数据流,每个流的数据被分割为带流id的二进制帧并交错发送,接收方根据流id重新组装,从而避免了http/1.1中因单个请求阻塞导致后续请求等待的队头阻塞问题;2. hpack头部压缩通过静态字典、动态字典和哈夫曼编码减少重复头部信息的传输量…

    2026年8月28日
    400
  • 如何进入调试模式_怎样启用开发者调试模式

    启用开发者调试模式的具体步骤因设备或软件环境而异,最常见的场景是网页浏览器和安卓设备;在chrome浏览器中可通过f12快捷键或右键“检查”开启开发者工具,其中包含元素、控制台、网络等调试功能;安卓设备需在“关于手机”中连续点击“版本号”七次以激活“开发者选项”,随后可启用usb调试等功能。2. 调…

    2026年8月27日
    200
  • SSL证书是什么_SSL证书申请方式有哪些

    SSL证书是什么_SSL证书申请方式有哪些SSL证书是什么_SSL证书申请方式有哪些SSL证书是什么_SSL证书申请方式有哪些SSL证书是什么_SSL证书申请方式有哪些

    SSL证书是网站安全的保障,通过加密技术保护数据传输,提升用户信任和搜索引擎排名。申请方式主要有从CA机构购买或通过云服务商获取免费/付费证书。根据网站类型选择合适的证书:DV适合个人网站,OV适合企业,EV适合高安全需求的金融类网站。手动配置较复杂,但云平台提供的一键部署功能可简化流程。免费证书虽…

    2026年8月27日 用户投稿
    300
  • 如何解决前端项目中的图标管理问题?使用Composer可以轻松集成BootstrapIcons

    可以通过以下地址学习Composer:学习地址 在前端开发中,图标的选择和管理一直是一个让人头疼的问题。最近在开发一个新项目时,我遇到了一个棘手的情况:项目中需要使用大量图标,但这些图标来自不同的来源,导致样式不统一,管理起来也非常复杂。这不仅影响了项目的美观度,还严重拖慢了开发进度。 为了解决这个…

    用户投稿 2026年8月27日
    100
  • 如何优雅地在LaravelBlade视图中使用图标?mallardduck/blade-boxicons助你轻松搞定!

    可以通过一下地址学习composer:学习地址 在现代 web 应用中,图标扮演着不可或缺的角色。它们不仅能美化界面,还能直观地传达信息,提升用户交互体验。然而,对于 laravel 开发者来说,将图标整合到 blade 视图中,却常常伴随着一些“甜蜜的烦恼”。 还记得那些日子吗?为了在项目中引入一…

    用户投稿 2026年8月27日
    100
  • Laravel与Livewire实现实时前端

    使用laravel和livewire实现实时前端可以通过以下步骤实现:1. 安装和配置livewire,使用composer安装并在视图中添加必要的样式和脚本;2. 创建livewire组件,使用命令行工具生成组件文件,并在其中定义属性和方法;3. 在laravel视图中使用livewire组件,实…

    2026年8月27日
    100
  • VSCode怎么调出HTML模板_VSCode快速生成HTML基础模板结构教程

    答案:在VSCode中输入!后按Tab键即可快速生成HTML5模板,也可使用html:5或doc等Emmet缩写,若失效需检查文件类型和设置,还可通过自定义snippets.json实现个性化模板。 在VSCode中快速生成HTML基础模板结构,最直接也最常用的方法就是利用其内置的Emmet功能。你…

    2026年8月26日
    200
  • 微信公众号小程序怎么做_微信公众号关联小程序开发教程

    微信公众号小程序怎么做_微信公众号关联小程序开发教程微信公众号小程序怎么做_微信公众号关联小程序开发教程微信公众号小程序怎么做_微信公众号关联小程序开发教程微信公众号小程序怎么做_微信公众号关联小程序开发教程

    先完成小程序开发与审核,再通过公众号后台授权绑定。需先注册开发者账号并认证公众号,创建小程序项目后使用微信开发者工具进行开发,提交审核通过后,在公众号后台关联小程序AppID,实现多入口展示与运营联动。 微信公众号关联小程序,核心在于先独立完成小程序的开发与审核,然后通过公众号后台进行简单的授权绑定…

    2026年8月26日 用户投稿
    100
  • 如何让你的Magento2商店说法语?使用Composer轻松部署多语言包

    可以通过一下地址学习composer:学习地址 我最近在负责一个magento 2电商平台,老板雄心勃勃地想拓展法国市场。然而,摆在我面前的第一个难题就是:如何让我的英文商店“说”法语?如果用户访问网站时看到的是熟悉的母语界面,无疑会大大提升他们的购物体验,增加转化率。 最初,我考虑过手动下载法语语…

    用户投稿 2026年8月26日
    000
  • 告别繁琐的图标管理:如何轻松在LaravelBlade中使用FeatherIcons,让开发效率飞起来!

    可以通过一下地址学习composer:学习地址 还记得吗?在 laravel 项目中需要用到一些小图标时,我们常常需要手动下载 svg 文件,然后小心翼翼地嵌入到 blade 视图中。这不仅让代码变得冗长,难以阅读,还特别难以维护和管理。想象一下,如果项目中有几十个甚至上百个图标,每次需要修改颜色、…

    用户投稿 2026年8月26日
    100

发表回复

登录后才能评论
关注微信