epubjs阅读器

2,191 阅读1分钟
一个简易的epub电子书籍阅读器代码,可以展示书籍和书籍翻页。

流程:

  • 准备epub电子书籍

  • 引入epubjs插件

 this.book = new Epub('电子书文件路径')
  • 将电子书挂载DOM节点
this.rendition = this.book.renderTo('bookRender',{
      width:window.innerWidth,
      height:window.innerHeight
    })
  • 翻页(调用epubjs插件方法)
this.rendition.prev()  //上一页
this.rendition.next()  //下一页
//完整代码
<template>
  <div class="ebook">
    <div class="read-wrapper">
      <div id="bookRender"></div>
      <div class="mask" >
        <div class="left" @click="prevPage"></div>
        <div class="center"></div>
        <div class="right" @click="nextPage"></div>
      </div>
    </div>
  </div>
</template>

<script>
import Epub from 'epubjs'
const bookUrl = '山海经.epub'
export default {
  name: '',
  data(){
   return{
     book:'',
     rendition:''
   }
  },
  methods:{
    showEpub(){
    this.book = new Epub(bookUrl)
    this.rendition = this.book.renderTo('bookRender',{
      width:window.innerWidth,
      height:window.innerHeight
    })
    this.rendition.display()
    },
    prevPage(){
    this.rendition.prev()  
    },
    nextPage(){
     this.rendition.next()
    }
  },
  mounted(){
    this.showEpub()
  }
};
</script>

<style scoped lang="scss" rel='stylesheet/scss'>
.ebook{
  position: relative;
  .read-wrapper{
   .mask{
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: 100%;
    z-index: 10;
    .left{
     flex: 0 0 20%;
    }
    .center{
      flex: 1;
    }
    .right{
      flex: 0 0 20%;
    }
   }
  }
}
 
</style>