请稍等 ...
×

采纳答案成功!

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

正在回答

2回答

你好,全文搜索后跳转到指定位置,阅读进度会随之改变。因为跳转时调用的mixin.js中的display()方法,该方法会调用refreshLocation()方法,刷新阅读位置。

0 回复 有任何疑惑可以回复我~
  • 提问者 学者___ #1
    目录跳转时没问题,但是全文搜索跳转进度条就不会刷新
    回复 有任何疑惑可以回复我~ 2019-01-27 14:13:25
  • Sam 回复 提问者 学者___ #2
    检查下你的refreshLocation()方法,检查跳转后是否调用并成功执行了refreshLocation()方法?以及refreshLocation()方法中是否更新了进度条的内容
    回复 有任何疑惑可以回复我~ 2019-01-27 14:16:05
  • 提问者 学者___ 回复 Sam #3
    跳转后getSectionName()方法和refreshLocation()方法都未执行
    回复 有任何疑惑可以回复我~ 2019-01-27 14:42:28
提问者 学者___ 2019-01-27 15:10:20
//搜索列表项
<div class="slide-search-item"
     v-for="(item, index) in searchList"
     :key="index"
     v-html="item.excerpt"
     @click="displayContent(item.cfi, true)">
</div>

//调用display()
displayContent (target, highlight = false) {
  this.display(target, () => {
    this.hideTitleAndMenu()
    if (highlight) {
      this.currentBook.rendition.annotations.highlight(target)
    }
  })
}

//display()调用refreshLocation()
display (target, cb) {
  if (target) {
    this.currentBook.rendition.display(target).then(() => {
      this.refreshLocation()
      if (cb) cb()
    })
  } else {
    this.currentBook.rendition.display().then(() => {
      this.refreshLocation()
      if (cb) cb()
    })
  }
}

//refreshLocation()方法
refreshLocation () {
  const currentLocation = this.currentBook.rendition.currentLocation()
  if (currentLocation && currentLocation.start) {
    const startCfi = currentLocation.start.cfi
    const progress = this.currentBook.locations.percentageFromCfi(startCfi)
    this.setProgress(Math.floor(progress * 100))
    this.setSection(currentLocation.start.index)
    saveLocation(this.fileName, startCfi)
  }
}


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信