前面的話
最近在復習自己寫的博客,但有的博客內(nèi)容很長,長到不知道多少時間可以讀完。這時,就有種泄氣的沖動。但,如果能夠提供一個博客內(nèi)容進度的插件,根據(jù)所讀內(nèi)容的多少,顯示進度條,讓自己對所讀的內(nèi)容進度心里有數(shù),可以讓自己平靜下來,一點一點讀下去。本文將詳細介紹博客內(nèi)容進度插件的實現(xiàn)
效果演示
無論是通過鼠標滾輪,還是拖動滾動條,也或者是按空格鍵,只要發(fā)生了頁面的滾動操作,就會觸發(fā)頁面底部博客內(nèi)容進度條的變化。根據(jù)當前內(nèi)容的多少計算與博客所有內(nèi)容的比例,最終對應成進度條的寬度。當鼠標移入進度條范圍時,會以數(shù)字顯示出當前的進度百分比
通過使用如下代碼,可將進度插件插入頁面中
<script src="http://files.cnblogs.com/files/xiaohuochai/progress.js"></script>
由于目錄和進度都是常用的功能,所以,我把進度的功能整合到目錄生成的插件中了
<script src="http://files.cnblogs.com/files/xiaohuochai/catalog.js"></script>
原理解釋
上面已經(jīng)簡明扼要的說明了進度條的原理,而實現(xiàn)起來也不困難。在觸發(fā)滾動事件時,計算兩個高度值。一個值H用來表示整篇博客內(nèi)容的底部離頁面頂端的距離。一個值h用來表示當前窗口內(nèi)博客內(nèi)容的底部離頁面頂端的距離。從而比例值radio = h/H,就是進度百分比,以進度條的寬度變化顯示出來
具體實現(xiàn)
【1】獲取博客內(nèi)容總高度H,如下圖所知,博客園將博客內(nèi)容放在id為cnblogs_post_body的div內(nèi),通過scrollHeight來獲取其高度即可。且該值是固定不變的,不需在發(fā)生滾動事件時再獲取,頁面加載完成后就可獲取
function addEvent(target,type,handler){ if(target.addEventListener){ target.addEventListener(type,handler,false); }else{ target.attachEvent('on'+type,function(event){ return handler.call(target,event); }); } } var H; addEvent(window,'load',function(){ H = cnblogs_post_body.scrollHeight; });
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站aaarwkj.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞名稱:js博客內(nèi)容進度插件詳解-創(chuàng)新互聯(lián)
本文URL:http://aaarwkj.com/article8/dspgip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、自適應網(wǎng)站、域名注冊、網(wǎng)站改版、外貿(mào)建站、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)