请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于电子书分页问题

图片描述
调试的时候才发现有些电子书分页会出现上图的情况,有些又是正常分页,一直找不到原因,能麻烦老师帮调试一下吗,地址https://github.com/HenryNer/firstWrapper

下面是修改后的
图片描述

正在回答 回答被采纳积分+3

1回答

Sam 2019-07-30 22:30:13

hi,这个问题涉及到分页算法,因为课时有限,所以没有穷举所有的翻页算法,会出现上述问题的原因是因为navigation获取的目录名称和通过locations获取的目录名称不一致导致,解决方法如下:

修改EbookReader.vue 238行,替换为如下代码,改动部分已经注释:

locations.forEach(item => {
    const loc = item.match(/\[(.*)]!/)[1]
    this.navigation.forEach(nav => {
        if (nav.href) {
            // 兼容xhtml的文件的场景,优化了正则表达式
            let href = nav.href.match(/\/(.*)\.xhtml$/)
            // 如果没有匹配到,则再使用html正则进行匹配
            if (!href) {
                href = nav.href.match(/^(.*)\.html$/)
            }
            if (href) {
                // loc只要包含href[1]中的内容,则认为包含在该目录下
                if (loc.indexOf(href[1]) >= 0) {
                    nav.pagelist.push(item)
                }
            }
        }
    })
    let currentPage = 1
    this.navigation.forEach((nav, index) => {
        if (index === 0) {
            nav.page = 1
        } else {
            nav.page = currentPage
        }
        currentPage += nav.pagelist.length + 1
    })
})


0 回复 有任何疑惑可以回复我~
  • 提问者 如雨 #1
    老师你好,我按照上面优化后发现第一页跟第二页相差几千页,修改后的图发在上面了
    回复 有任何疑惑可以回复我~ 2019-07-31 00:01:41
  • Sam 回复 提问者 如雨 #2
    额,算法还有优化点,晚点我再看下
    回复 有任何疑惑可以回复我~ 2019-07-31 08:43:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信