ホームページ  >  記事  >  ウェブフロントエンド  >  主要なブラウザと完全に互換性のある JS のスクロールトップ メソッド_JavaScript スキル

主要なブラウザと完全に互換性のある JS のスクロールトップ メソッド_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 16:03:101086ブラウズ

1. ブラウザごとのスクロールトップの違い

IE6/7/8/9/10:

Doctype 宣言のないページの場合は、document.body.scrollTop を使用してスクロールトップの高さを取得できます。 doctype 宣言のあるページの場合は、 document.documentElement.scrollTop ;
を使用できます。

サファリ:

Safari は非常に特殊で、scrollTop を取得する独自の関数があります。

Firefox:

Firefox やその他の比較的標準的なブラウザでは、document.documentElement.scrollTop; を使用するだけです。

2. スクロールトップの値を取得します

scrollTop 割り当てフレーズを完全に取得:

コードをコピーします コードは次のとおりです: varscrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;


scrollTop 値は、この割り当てを通じてどのような状況でも取得できます。
この課題を注意深く見てください、何か気づきましたか? ?

そうです、|| の真ん中に window.pageYOffset (Safari) が配置されています。

数値 0 が undefine と OR されると、システムはデフォルトで最後の値を返すためです。つまり、OR 演算で 0 == undefine;

ページのスクロールバーが一番上にある場合、つまりscrollTopの値が0の場合、IE上のwindow.pageYOffset(Safari)はundefineに戻ります このとき、window.pageYOffset(Safari)を配置するとOR 演算の終了時に、scrollTop は undefine を返します。次の演算で undefine が使用されると、エラーが報告されます。

他のブラウザでは、scrollTop の割り当てや操作の順序に関係なく undefine が返されることはありません。安全に使用できます。

結局のところ、やはり IE の問題です...

少し混乱していて、自分の考えを明確に表現できるかわかりません。

しかし最終的には、この文はテスト済みで問題ないので、安心して使用できるという結論に達しました。


コードをコピーします コードは次のとおりです: varscrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;


これは、scrollTop を取得するための完璧な代入ステートメントです。
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。