美文网首页
Vue--利用ant-design-vue Progress实现

Vue--利用ant-design-vue Progress实现

作者: 二营长家的张大炮 | 来源:发表于2020-01-10 15:31 被阅读0次

有时候在阅读某些博客文章的时候,页面顶部会显示阅读的实时进度。
大概效果就是:


顶部进度条

我在做的大致思路就是:新建一个组件,引入ant-design-vue的Progress组件,然后父组件会穿给子组件一个滚轮滚动距离以及滚轮可滚动距离,二者的比就是进度条实时进度。

剩下的工作就是计算这两个距离了:

首先计算totalHeight:

const articleadd: any = this.$refs.article_add;
  this.totalHeight =
        articleadd.offsetHeight - document.documentElement.clientHeight + 64;

articleadd.offsetHeight 是滚轮滚动的dom高度
document.documentElement.clientHeight:是屏幕高度
64:是因为滚动区域上方有个固定高度的头,我们要把它去掉
这样计算出来的就是滚轮可滚动高度了。

然后我们在mounted中给滚动的dom绑定滚动监听事件。注意:一定要在mounted中。

 articleadd.parentNode.addEventListener(
        "scroll",
        () => {
          var scrollTop = articleadd.parentNode.scrollTop;
          this.currentHeight = scrollTop;
        },
        true
      );

我们在引入组件的时候传入参数即可

相关文章

网友评论

      本文标题:Vue--利用ant-design-vue Progress实现

      本文链接:https://www.haomeiwen.com/subject/aftmactx.html