靜態效果的實現
網頁頂部加載進度條,近年來很流行,很多網站都采用了這種加載方式。網上也有這樣類似的插件,今天我們總結一下網頁頂部線性頁面加載進度條。
大體的寫法如下:
body{ margin:0; } #progress { position:fixed; height: 2px; background:#2085c5; transition:opacity 500ms linear } #progress.done { opacity:0 } #progress span { position:absolute; height:2px; -webkit-box-shadow:#2085c5 1px 0 6px 1px; -webkit-border-radius:100%; opacity:1; width:150px; right:-10px; -webkit-animation:pulse 2s ease-out 0s infinite; } @-webkit-keyframes pulse { 30% { opacity:.6 } 60% { opacity:0; } 100% { opacity:.6 } }
html代碼:
<div id="progress"> <span></span> </div>
jquery代碼:
$({property: 0}).animate({property: 100}, { duration: 3000, step: function() { var percentage = Math.round(this.property); $('#progress').css('width', percentage+"%"); if(percentage == 100) { $("#progress").addClass("done");//完成,隱藏進度條 } } });
設定其持續時間是3秒鐘!你可以改動一下,把3秒鐘的時間改成你網頁的加載時間,就可以做出網頁動態加載進度條了。。
頁面加載插件的實際應用及load函數的運用
關于頁面的加載,很難找到一個很好的方法來獲取頁面的實際下載進度。下面介紹的方法是運用 $(window).load(function() {})和$(document).ready(function(){})來進行的,雖然這種方法不是很準確,但是也可以模擬網頁的下載。
$(function(){ NProgress.start(); }) $(window).load(function() { NProgress.done(); })
有很多朋友可能對 $(window).load(function() {})和$(document).ready(function(){})的區別不是很了解。大家可以寫一個小案例來測試一下!
例如:
$(window).load(function() { alert("我是load") }) $(function(){ alert("我是document.ready") })
很明顯,肯定是document.ready先執行,因為document.ready是在DOM結構載入完后執行的,不需要載入得這么“完全”,而$(window).load則是頁面全部內容加載完成后執行的。
有時候,
$(window).load(function() { alert("我是load") })
也可以用js的寫法:
window.onload = function(){ ... }
都是在頁面全部下載完成之后來執行的。兩種寫法是等價的!