close
之前看網站時,發現一個功能,就是閱讀進度條
這功能可以讓User知道自己的頁面還有多長多多,就是一個炫麗的效果,這邊筆記一下
這邊使用到的是Vue,UI使用Vuetify
首先我們先使用Vuetify中的v-progress-linear,他是一個進度條
大概簡單套一下div與簡單的css,如喜歡可以把它變成一個元件,後續可以多加利用
<div > <v-progress-linear style="width: 100%; position: -webkit-sticky; position: fixed; top: 0; z-index: 1050" v-model="readPercentage"> </v-progress-linear> </div>
再來是js的部分,我在mounted的時候,直接加上一個Listener來監聽scrollbar的位置
mounted() { var self = this; document.addEventListener("scroll", function(){ if(document.scrollingElement.scrollTop == 0) self.readPercentage = 0; else self.readPercentage = (document.scrollingElement.scrollTop + window.innerHeight) / document.body.clientHeight * 100; }); }
這樣就完成了
講解一下各個參數代表的位置
1. document.scrollingElement.scrollTop
bar條頂端的位置
2. window.innerHeight
頁面的高度
3. document.body.clientHeight
整個頁面的高度(body)
所以:
document.scrollingElement.scrollTop + window.innerHeight = bar條底端高度
bar條底端高度/頁面高度*100 = 閱讀進度
利用這三個數值就可以簡易的算出閱讀進度囉!
整體示意圖:
文章標籤
全站熱搜
留言列表