当前位置:   article > 正文

使用CSS实现书籍的翻页效果(使用了animation)_css书本翻页效果

css书本翻页效果

我的思路是 @keyframes 定义动画的起始状态和结束状态; 使用 transition 来实现中间的动画效果;

要注意的是父盒子要开启3d, 并且要调整视距; 还要注意旋转的角度以及起始位置; 最后要注意的是使用backface-visiblity: hidden 让翻转到反面的元素不显示

废话不多说,直接上代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. *{
  8. margin: 0;
  9. padding: 0;
  10. }
  11. .book{
  12. width: 300px;
  13. margin: 100px auto; /*居中*/
  14. position: relative;/*开启相对定位*/
  15. perspective: 1500px; /*视距*/
  16. transform-style: preserve-3d;/*开启3d*/
  17. transform: rotateX(10deg); /*向下旋转一些*/
  18. }
  19. li{
  20. position: absolute;/*开启绝对定位*/
  21. font-size: 20px;
  22. /*依据图片的分辨率而设*/
  23. width: 300px;
  24. height: 400px;
  25. box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.1); /*向内设置阴影*/
  26. backface-visibility: hidden; /*使得翻转到反面时不显示*/
  27. transition: transform 6s linear;/*过渡效果*/
  28. }
  29. .cover{
  30. background: linear-gradient(to left top,maroon,lightcoral);
  31. z-index: 0;/*显示*/
  32. transform-origin: left center;/*设置transform中心点*/
  33. animation: coverAnimate infinite 6s linear; /*动画, 重复, 时间, 速度曲线*/
  34. }
  35. .page1{
  36. background: linear-gradient(to left top,greenyellow,orange);
  37. left: -300px; /*向左移动-300px*/
  38. z-index: -1;
  39. transform-origin: right center;
  40. transform: rotateY(180deg); /*旋转180度*/
  41. animation: page1Animate infinite 6s linear;
  42. }
  43. .page2{
  44. background: linear-gradient(to left top,deeppink,red);
  45. z-index: -2;
  46. }
  47. /* .book:hover .cover{
  48. transform: rotateY(-180deg);
  49. }
  50. .book:hover .page1{
  51. transform: rotateY(0deg);
  52. }*/
  53. @keyframes coverAnimate { /*定义动画*/
  54. 0%{ /*其实状态*/
  55. transform: rotateY(0deg);
  56. }
  57. 100%{/*最终状态*/
  58. transform: rotateY(-180deg);
  59. }
  60. }
  61. @keyframes page1Animate {
  62. 0%{
  63. transform: rotateY(180deg);
  64. }
  65. 100%{
  66. transform: rotateY(-0deg);
  67. }
  68. }
  69. </style>
  70. </head>
  71. <body>
  72. <ul class="book">
  73. <li class="cover">第一页</li>
  74. <li class="page1">第二页</li>
  75. <li class="page2">第三页</li>
  76. </ul>
  77. </body>
  78. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/117151
推荐阅读
相关标签
  

闽ICP备14008679号