进度条样式被覆盖,无法根据进度条颜色对应变化,整条都是黑色的
来源:5-2 阅读进度功能实现(进度拖动功能)
慕鱼树
2019-04-11
<!--阅读进度条功能面板-->
<template>
<transition name="slide-up">
<div class="setting-wrapper" v-show="menuVisible && settingVisible === 2">
<div class="setting-progress">
<!--阅读时间-->
<div class="read-time-wrapper">
<span class="read-time-text">111</span>
<span class="icon-forward"></span>
</div>
<!--进度条-->
<div class="progress-wrapper">
<!--跳转上一章-->
<div class="progress-icon-wrapper">
<span class="icon-back" @click="preSection()"></span>
</div>
<!--进度条-->
<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">
<!-- :disabled="!bookAvailable":为了保证电子书还没渲染完成前不进行进度条功能的跳转;需先进行电子书的分页(EbookReader组件中)再使用进度条的功能-->
<!--跳转下一章-->
<div class="progress-icon-wrapper">
<span class="icon-forward" @click="nextSection()"></span>
</div>
</div>
<!--阅读进度文本显示-->
<div class="text-wrapper">
<span>{{bookAvailable ? progress + '%' : '加载中...'}}</span>
<!--//电子书解析之后显示加载中-->
</div>
</div>
</div>
</transition>
</template>
<script>
import { ebookMixin } from '../../utils/mixin'
export default {
mixins: [ebookMixin],
methods: {
// 拖动进度条松开后触发的事件:根据进度条数值跳转位置
onProgressChange(progress) { // progress是进度条的数值:1-100
this.setProgress(progress).then(() => {
// 设置完vuex里的progress,再调用一下方法继续执行
this.displayProgress()
this.updateProgressBg()
})
},
// 拖动进度条时触发的事件
onProgressInput(progress) {
// this.setProgress(progress)实现拖动的时候文本的进度条百分比也实时在变化,因为此处实时改变了vuex中的progress
this.setProgress(progress).then(() => {
this.updateProgressBg()
})
// this.setProgress(progress).then(() => { this.displayProgress() })
// 后面的then方法实现了拖动进度条时阅读器内容也在实时变化【此功能可删除】
},
// 展示当前进度所在的页面
displayProgress() {
const cfi = this.currentBook.locations.cfiFromPercentage(this.progress / 100)
// 利用book里的locations下的cfiFromPercentage方法(需传入小数)得到此处的cfi
// console.log(cfi)
this.currentBook.rendition.display(cfi)
// 通过rendition下的display()来渲染cfi
},
// 设置阅读条的左边(已阅读部分)背景色加深
updateProgressBg() {
this.$refs.progress.style.backgroundSize = `${this.progress}% 100%`
// this.$refs.progress是获取到rel:progress的dom(即本组件中的range)
},
preSection() {
},
nextSection() {
}
}
}
</script>
<style lang="scss" rel="stylesheet/scss" scoped>
@import "../../assets/styles/global";
.setting-wrapper {
position: absolute;
bottom: px2rem(48);
left: 0;
z-index: 160;
width: 100%;
height: px2rem(90);
background: white;
box-shadow: 0 px2rem(-8) px2rem(8) rgba(0, 0, 0, .15);
.setting-progress {
position: relative;
width: 100%;
height: 100%;
.read-time-wrapper{ //阅读时间样式
position: absolute;
left: 0;
top: 0;
width: 100%;
height: px2rem(40);
font-size: px2rem(12);
@include center
}
.progress-wrapper {
width: 100%;
height: 100%;
@include center;
padding: 0 px2rem(15);
box-sizing: border-box;
.progress-icon-wrapper{ // 跳转上下章图标的样式
font-size: px2rem(20);
}
.progress {
width: 100%;
-webkit-appearance: none;
height: px2rem(2); // 进度条高度
margin: 0 px2rem(10);
&:focus {
outline: none;
}
&::-webkit-slider-thumb {
-webkit-appearance: none;
height: px2rem(20);
width: px2rem(20);
border-radius: 50%;
background: white;
box-shadow: 0 4px 4px 0 rgba(0, 0, 0, .15);
border: px2rem(1) solid #ddd;
}
}
}
.text-wrapper {
position: absolute;
left: 0;
bottom: px2rem(10);
width: 100%;
color: #333;
font-size: px2rem(12);
@include center;
}
}
}
</style>
已根据其他同学的答案,换了在线主题样式css文件和清除了浏览器缓存,还是无法解决。代码也检查了
只能请老师帮忙看下
写回答
2回答
-
代码已经调试,问题的原因应该是本地的样式文件没有完全加载完,可以检查下本地nginx目录下的资源文件,你可以这样改一下:
第一步,打开.env.development,写入以下配置:
VUE_APP_RES_URL=http://47.99.166.157/book/res VUE_APP_EPUB_URL=http://47.99.166.157
第二步,打开EbookReader.vue,149行:
const url = process.env.VUE_APP_EPUB_URL + '/epub/' + this.fileName + '.epub'
然后重新运行,问题就解决了,将资源文件替换为线上版本就没问题,说明问题出在资源文件上,与进度条背景相关的样式文件是theme文件下的四个样式文件:
-rw-r--r-- 1 root root 2723 10月 16 22:47 theme_default.css -rw-r--r-- 1 root root 2721 10月 16 22:47 theme_eye.css -rw-r--r-- 1 root root 2723 10月 16 22:47 theme_gold.css -rw-r--r-- 1 root root 2717 10月 16 22:47 theme_night.css
重点看下这几个文件是否有问题
022020-02-19 -
Sam
2019-04-11
方便的话,将代码上传到git发来看一下吧
042019-04-13
相似问题