この記事の例では、一部の HTML 固定ページの上部にある画面スクロール効果の JS 実装について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
タオバオではこのような特殊効果がよく見られます。商品リストは非常に長いですが、商品列の名前は常に先頭に表示されます。スクロール バーを一番上までスクロールすると、一番上に到達したかどうかを自動的に判断し、ブロックされないように一番上に維持します。
この特殊効果は JavaScript と CSS によって実装されており、実際の開発で多くの用途に使用できます。以下は、JavaScript を使用して Taobao スマート フローティングを模倣したソース コードです。互換性が高く、IE、Firefox、などで使用できます。 Chrome ではすべて正常に動作します。
この特殊効果コードをサイドバーで使用する場合は、JavaScript を使用してサイドバーの列を動的にロードできないことに注意する必要があります。それ以外の場合は、静的形式にする必要があります。ページの高さが正しく計算されず、上下にスクロールがずれてしまいます。
JavaScript コード:
(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;}
この記事が JavaScript プログラミングのすべての人に役立つことを願っています。