美文网首页
vue 书本翻页的效果

vue 书本翻页的效果

作者: 席小丽 | 来源:发表于2020-07-16 16:59 被阅读0次

第一种效果

1.对应的效果图。如下:


111.gif

2.对应翻页的代码。如下:

<template>
  <div class="box_box">
    <div class="book">
      <div class="page page4">最后一页</div>
      <div class="page page3">第三页</div>
      <div class="page page2">第二页</div>
      <div class="page page1">第一页</div>
    </div>
  </div>
</template>

<script>
export default {
  data(){
    return{
    }
  },
  mounted(){
    var pages = document.querySelectorAll('.page')
    pages.forEach(v => {
      v.onclick = function () {
        v.style.transform = 'perspective(1500px) rotateY(-180deg)'
      }
    });
  },
}
</script>

<style lang="scss" scoped>
.box_box{
  width: 700px !important;
  height: 800px !important;
  position: relative;
  .book{
    position: relative;
    width: 200px;
    height: 300px;
    border: 1px solid #000;
    transform-style: preserve-3d;
    margin: 200px auto;
  }
  .page {
    position: absolute;
    width: 100%;
    height: 100%;
    transform-origin: left;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    transform: perspective(1500px) rotateY(0deg);
    transition: transform 1s ease-in;
    text-align: center;
    line-height: 300px;
    background: plum;
  }
}
</style>

第二种效果

1.对应的效果图。如下:


111.gif

2.对应翻页的代码。如下:

<template>
  <div class="box_box">
    <div class="book">
      <div class="page page4">
        <div class="page_content">最后一页</div>
        <div class="page_footer">
          <div @click="prevPage($event)">第4页</div> / <div @click="nextPage($event)">共4页</div>
        </div>
      </div>
      <div class="page page3">
        <div class="page_content">第三页</div>
        <div class="page_footer">
          <div @click="prevPage($event)">第3页</div> / <div @click="nextPage($event)">共4页</div>
        </div>
      </div>
      <div class="page page2">
        <div class="page_content">第二页</div>
        <div class="page_footer">
          <div @click="prevPage($event)">第2页</div> / <div @click="nextPage($event)">共4页</div>
        </div>
      </div>
      <div class="page page1">
        <div class="page_content">第一页</div>
        <div class="page_footer">
          <div @click="prevPage($event)">第1页</div> / <div @click="nextPage($event)">共4页</div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data(){
    return{
    }
  },
  mounted(){
  },
  methods:{
    // 上一页
    prevPage(e){
      // 获取到 class 名为 page 的元素下一个兄弟元素
      let a = e.currentTarget.parentNode.parentNode.nextElementSibling;
      if(a != null){
        a.style.transform = 'perspective(2000px) rotateY(0deg)';
      }
    },
    // 下一页
    nextPage(e){
      // 获取到 class 名为 page 的元素
      let a = e.currentTarget.parentNode.parentNode;
      // 获取到 class 名为 page 的元素上一个兄弟元素
      let b = e.currentTarget.parentNode.parentNode.previousElementSibling;
      if(b != null){
        a.style.transform = 'perspective(2000px) rotateY(-180deg)';
      }
    },
  },
}
</script>

<style lang="scss" scoped>
.box_box{
  width: 700px !important;
  height: 800px !important;
  position: relative;
  .book{
    position: relative;
    width: 200px;
    height: 300px;
    border: 1px solid #000;
    transform-style: preserve-3d;
    margin: 200px auto;
  }
  .page {
    position: absolute;
    width: 100%;
    height: 100%;
    transform-origin: left;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    transform: perspective(1500px) rotateY(0deg);
    transition: transform 1s ease-in;
    background: plum;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    .page_content{
      text-align: center;
      line-height: 260px;
    }
    .page_footer{
      display: flex;
      align-items: center;
      text-align: right;
      justify-content: flex-end;
      padding: 0px 10px 10px 0px;
      div{
        cursor: pointer;
      }
    }
  }
}
</style>

相关文章

  • vue 书本翻页的效果

    第一种效果 1.对应的效果图。如下: 2.对应翻页的代码。如下: 第二种效果 1.对应的效果图。如下: 2.对应翻...

  • css3+js翻页效果三:书本翻页

    css样式是酱紫的: 这里面有几个比较重要的css3知识点: 1、transform-style:preserve...

  • 【开发】书本翻页效果Turn.js

    【软件名称】 Turn.js 书本翻页效果 【软件描述】 Turn.js 是一个轻量级的 (15kb) jQ...

  • HTML5 3D书本翻页动画

    这是一款十分炫酷的HTML5 3D书本翻页动画,效果相对比较简单,拖拽鼠标模拟用手翻页,更漂亮的是翻页过程中,呈现...

  • Vue实现简易翻页效果

    源码如下: 效果如下所示,点击左右能切换页面:

  • unity 制作书籍翻页效果

    unity C# 翻书效果 2D 真实翻页 不使用插件 自制 实现思路: 将书本分为两边,一边一个翻页实现; 下图...

  • WanAndroid Banner动画效果

    banner的动画效果类似书本翻页: 这是在Adapter里写的: 遇见就是缘分,朋友点个在再走吧!!!

  • 翻页效果

    设定翻页转轴transform-origin: left center;左边中心; 设定页面翻页层级:page页面...

  • 翻页效果

    小时候看电子书,很多电子书APP都有仿真的翻页效果,那时候觉得很新奇,奈何姿势水平不够,看不破其中的奥秘,有些当时...

  • vue翻页

网友评论

      本文标题:vue 书本翻页的效果

      本文链接:https://www.haomeiwen.com/subject/hptmhktx.html