epub阅读器开发简介
Epubjs核心
安装epubjs
npm install epubjs
电子书的解析和渲染
将电子书存放至public文件夹
import Epubjs from 'epubjs';const DOWNLOAD_URL='121312.epub'//指向电子书的下载路径
生成Epubjs电子书
this.book=new Epub(DOWNLOAD_URL)
通过this.book.renderTo()生成rendition对象
this.rendition=this.book.renderTo('read',{width:window.innerWidth,height:window.innerHeight})
渲染电子书 this.rendition.display()
电子书翻页
1.上一页
prevPage(){
if(this.rendition){
this.rendition.prev()
}
}
2.下一页
nextPage(){if (this.rendition){this.rendition.next()}}
电子书主题背景切换和字体设置
电子书主题背景切换
通过this.rendition.themes获得this.theme对象
通过this.theme.select()选择主题
setTheme(index){this.themes.select(this.themeList[index].name);this.defaultTheme=index;}//主题themeList:[{name:'eye',style:{body:{'color':'#000','background':'#fff'}}},{}...]
字体大小设置
setFontSize(fontSize){
this.defaultFontSize=fontSize;if (this.themes){this.themes.fontSize(fontSize+'px')}}
电子书目录和百分比定位
1.通过Epubjs的ready钩子函数获取
//默认情况下不会生成 this.book.locations对象,因为默认生成比较消耗性能
this.book.ready.then()表示电子书解析完成之后回调
this.book.ready.then(()=>{this.navigation=this.book.navigation;window.console.log(this.navigation)//生成locations对象的定位符return this.book.locations.generate()}).then(()=>{//保存loactions对象this.locations=this.book.locations;//电子书渲染完this.bookAvailable = true})
2.电子书目录生成
<div class="content-title">catalogue</div><div class="content-item" v-for="(item,index) in navigation.toc" :key="index"@click="jumpTo(item.href)"><span class="text">{{item.label}}</span></div>//跳转函数jumpTo(href){this.rendition.display(href)this.hideTitleAndMenu();}
3.百分比定位电子书
onProgressChange(progress){const percentage=progress/100;//通过this.locations.cfiFromPercentage(percentage)获取到当前的页数const location=percentage>0?this.locations.cfiFromPercentage(percentage):0;//传入location进行定位渲染this.rendition.display(location)}
4.进度条
<div class="progress-wrapper" >
<input class="progress" type="range"
max="100"
min="0"
step="1"
@change="onProgressChange($event.target.value)"
@input="onProgressInput($event.target.value)"
:value="progress"
:disabled="!bookAvailable"
ref="progress">
</div>
epub阅读器开发简介相关推荐
- EPUB和PDF的区别,有什么好用的epub阅读器
目前我们在阅读中经常遇到EPUB和PDF的文件,它们都能作为电子书文件,那它们之间有什么区别呢?今天笔者就来给大家科普一下它们俩的区别,顺便再给大家安利一些适合阅读EPUB和PDF的软件. EPUB: ...
- 宅家神器—epub阅读器
宅家神器-epub阅读器 眨眼间寒假已经过了一半,想必大家宅在家也是有些许无聊.所以不要再让你的书单压箱底了.趁着这个超长假期还没过完,翻一翻曾经只翻过几页的书,看一看之前还没来得及看的小说. 不用担 ...
- 学习软件之epub阅读器推荐
学习软件之epub阅读器推荐 现在这个信息时代,只要你想,就可以在网上轻而易举的找到自己想要的学习资料.一般来说,学习资料以视频和电子书为主.相比这两种资料,视频学习资料能够讲解的更详细但是进度比较慢 ...
- epub与txt的区别是什么?有什么好用的epub阅读器
目前我们在阅读中经常遇到EPUB和TXT的文件,它们都是一种电子书文件,那它们之间有什么区别呢?今天笔者就来给大家科普一下它们俩的区别,顺便再给大家安利一些适合阅读EPUB和TXT的软件. EPUB: ...
- EPUB阅读器聚合-Android
EPUB阅读器聚合-Android 书是人类智慧的结晶.从古到今,一提到书,我们很自然地会想起白纸黑字.中国古代的四大发明有一半是和书有关,即造纸和印刷术.进入21世纪,随着科技日新月异的发展,一个崭 ...
- EPUB、CAJ 、PDF 格式的区别,有什么好用的IOS手机epub阅读器
无论是寻找资料,还是寻找图书资源,又或是查找期刊论文,总是免不了和各种各样的网络文件打交道.那么不同格式的软件之间区别的在何处呢?今天我就为大家介绍一下EPUB.MOBI.CAJ 三种格式之间的区别, ...
- Web阅读器开发系列教程(入门篇)
作者:Sam 前言 最近我在慕课网发布了两门关于Web阅读应用开发的课程,采用Vue全家桶开发.免费课是入门级课程,初步实现了一个阅读器.实战课是进阶课程,实现了一个高性能的互联网阅读应用.两个项目都 ...
- iOS平台epub阅读器推荐
iOS平台epub阅读器推荐 大家好,眼看着假期就要过去了,不知道大家准备好上班/上学了没有?这段时间有没有好好读书呢.上次小编推荐了几款Android平台上可以使用的epub阅读器.今天就来给大家推 ...
- iOS上最好用的3款epub阅读器(转载)
iOS上最好用的3款epub阅读器 在网络发展迅猛的当下,你是喜欢用手机看电子书还是喜欢捧一本纸质书呢?或是用专门的电子书阅读器阅读呢? 论方便来说我还是更偏向于用手机看电子书,毕竟现在大家都是出门必 ...
最新文章
- web app升级—带进度条的App自动更新
- docker启动nginx代理不上_Docker nginx 反向代理设置
- matlab 多个波段,MatLab读取ENVI图像统计多波段图像信息
- 51 Nod 1027 大数乘法【Java大数乱搞】
- houghcircle函数_Hough Circle 变换
- 手机快充芯片及其技术标准和设计原理详解
- Spring Boot配置文件规则以及使用方法官方文档查找以及Spring项目的官方文档查找方法...
- 例子:选择一个联系人
- Redis09-集群相关笔记
- Nacos实现环境隔离
- 华为鸿蒙微内核已经投入商用;PC 端将支持打开小程序;VS Code 1.37 发布 | 极客头条...
- Linux基础命令操作
- Iterator迭代器遍历Map集合
- Unity简单麻将胡牌算法
- 怎么装python的keras库_Keras教程:用Python进行深度学习的终极入门指南
- XML Publisher介绍
- Windows下新建多级文件夹
- 51单片机 | 独立按键实验
- 软件测试人员正在逐步被自动化所替代
- sybase登录用户管理2
热门文章
- C++后端开发程序员应该彻底搞懂的【libevent网络库】,libevent组件构成以及编程要领丨Linux服务器开发丨服务端编程
- js parseFloat 会丢失精度
- 广州工商学院计算机考试怎样,广州工商学院怎么样 好不好
- 项目解析jsx文件_Rax 转小程序链路原理解析(一)
- Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解
- Oracle 考试重点代码整理
- 办公软件excel表格_钢筋算量Excel表格,现场算钢筋,效率可与大型软件相比
- android开发将h5转换成pdf_如何将PDF转换成图片?搞定PDF格式转换,就用这招就够了!...
- python 实现数字,按照输入顺序的倒序,去重
- 实操利用PowerPoint制作倒计时