部落格內容進度外掛程式的實現

2021-08-02 06:23:21 字數 2036 閱讀 8725

最近在複習自己寫的部落格,但有的部落格內容很長,長到不知道多少時間可以讀完。這時,就有種洩氣的衝動。但,如果能夠提供乙個部落格內容進度的外掛程式,根據所讀內容的多少,顯示進度條,讓自己對所讀的內容進度心裡有數,可以讓自己平靜下來,一點一點讀下去。本文將詳細介紹部落格內容進度外掛程式的實現

無論是通過滑鼠滾輪,還是拖動滾動條,也或者是按空格鍵,只要發生了頁面的滾動操作,就會觸發頁面底部部落格內容進度條的變化。根據當前內容的多少計算與部落格所有內容的比例,最終對應成進度條的寬度。當滑鼠移入進度條範圍時,會以數字顯示出當前的進度百分比

通過使用如下**,可將進度外掛程式插入頁面中

<

script

src=""

>

script

>

由於目錄和進度都是常用的功能,所以,我把進度的功能整合到目錄生成的外掛程式中了

上面已經簡明扼要的說明了進度條的原理,而實現起來也不困難。在觸發滾動事件時,計算兩個高度值。乙個值h用來表示整篇部落格內容的底部離頁面頂端的距離。乙個值h用來表示當前視窗內部落格內容的底部離頁面頂端的距離。從而比例值radio = h/h,就是進度百分比,以進度條的寬度變化顯示出來

獲取部落格內容總高度h,如下圖所知,將部落格內容放在id為cnblogs_post_body的div內,通過scrollheight來獲取其高度即可。且該值是固定不變的,不需在發生滾動事件時再獲取,頁面載入完成後就可獲取

獲取當前頁面視窗中顯示的部落格內容高度h,h實際上就是頁面的滾動距離h2

var h = document.documentelement.scrolltop || document.body.scrolltop;
進度條實現,通過h和h,可以計算出比例係數radio = h/h。html5新增了乙個表單類控制項progress,就是用來表示任務的進度或程序的

[注意]ie9-瀏覽器不支援

如果是ie9-瀏覽器,progress元素被退化為div元素,僅顯示百分比即可

將progress的max值設定為h,將value值設定為h。滾動事件觸發時,更新value值即可

addevent(window,'scroll',function());
樣式設定

進度條的樣式設定較為簡單,將其固定定位,居於頁面底部,並與視窗寬度相同

.progress
動態指令碼

由於最終將以外掛程式的形式呈現,所有的**都需要動態生成

var progress = document.createelement('progress');

progress.id = 'progress';

//事件相容

function addevent(target,type,handler)else);

}}//

生成元素

var progress = document.createelement('progress');

progress.id = 'progress';

progress.style.csstext = 'position:fixed;left:0;right:0;bottom:0;width:100%;height:12px;text-align:center;font:12px/12px "宋體";';

//計算h

var h;

addevent(window,'load',function());

//計算h及radio

addevent(window,'scroll',function());

Eclipse 外掛程式實現進度條

eclipse 外掛程式中,很多時候會遇到需要長時間執行的任務,這些任務需要放在後台執行緒裡執行,否則,就會使 eclipse 的 ui 僵住。這個時候,我們需要使用 eclipse 提供的 job 或者 progressmonitordialog 實現。1.使用 job job job new j...

帶進度條的上傳外掛程式

官方網址 我使用的版本是v3.1 flash 版,相關的介紹就不用了吧.總之是個好用的工具,而且提供的引數也很夠用。基本使用方式請參考官方檔案 documentation 網路上也很多中文的入門教學 我需要調整按鈕樣式 警告視窗模式改用 jquery 的 dialog 改成中文訊息 1.修改按鈕的樣...

值得學習的部落格內容

android逆向之旅 靜態分析技術來破解apk android效能優化之常見的記憶體洩漏 架構之路 android 多解析度自適應總結 各種android小demo android context完全解析,你所不知道的context的各種細節 eclipse,到了說再見的時候了 android s...