仿淘寶智能浮動的JavaScript代碼

2011-10-27 12:49:17來源:月光博客作者:

我們經(jīng)常在淘寶網(wǎng)看到這樣的特效,商品列表特別長,而商品列名稱始終保持在最頂端。如果你把滾動條滾動至最上邊了,那么它會自動判斷是否到頂端了,然后一直置頂從而不怕遮擋。

我們經(jīng)常在淘寶網(wǎng)看到這樣的特效,商品列表特別長,而商品列名稱始終保持在最頂端。如果你把滾動條滾動至最上邊了,那么它會自動判斷是否到頂端了,然后一直置頂從而不怕遮擋。

這種特效是通過JavaScript和CSS實現(xiàn)的,在實際開發(fā)中有不少用途,下面是我找到的一個使用JavaScript制作的仿淘寶智能浮動的源代碼,兼容性不錯,在IE、Firefox、Chrome下都能正常工作。

在Z-Blog中使用這個特效代碼需要注意,如果在側(cè)邊欄使用,則需要注意,側(cè)欄中的欄目不能使用JavaScript動態(tài)加載,必須用靜態(tài)的格式,否則在JavaScript會錯誤的計算頁面高度,上下滾動的時候會出現(xiàn)錯位現(xiàn)象。

以下是相關(guān)代碼:

jQuery 代碼

(function(){
    var oDiv=document.getElementById("float");
    var H=0,iE6;
    var Y=oDiv;
    while(Y){H+=Y.offsetTop;Y=Y.offsetParent};
    iE6=window.ActiveXObject&&!window.XMLHttpRequest;
    if(!iE6){
        window.onscroll=function()
        {
            var s=document.body.scrollTop||document.documentElement.scrollTop;
            if(s>H){oDiv.className="div1 div2";if(iE6){oDiv.style.top=(s-H)+"px";}}
            else{oDiv.className="div1";}  
        };
    }
})();

HTML 代碼

<div id="box">
    <div id="float" class="div1">
        //隨滾動移動的部分代碼
    </div>
</div>

CSS 代碼

#box{float:left;position:relative;width:295px;}
.div1{}
.div2{position:fixed;_position:absolute;top:3px;z-index:295;}
 

關(guān)鍵詞:JavaScript