scrollTop scrollLeft - ブラウザのスクロール状態を取得する
2007年6月21日(木) 19:00JavaScriptでscrollTop scrollLeftでスクロール量を取得する際に、コンテンツの<!DOCTYPEの記述状態によって、スクロール量を取得する呼び出し方法が若干異なってくる。汎用性のあるコードで処理用のFunctionを作成しておけば、必要な場面で簡単に利用できる。
DOCTYPE あり - document.body.scrollTop
DOCTYPE なし - document.documentElement.scrollTop
縦のスクロール量を取得する際に、取得できなかった方が "0"(false)の値を返すが、ブラウザによっては"undefined"を返す場合やエラーになる場合もあるので、注意して利用する必要がある。
スクロール状態を取得するFunction
<script type="text/javascript">
document.scroll = function(){
return {
x: this.body.scrollLeft || this.documentElement.scrollLeft,
y: this.body.scrollTop || this.documentElement.scrollTop
};
};
</script>
スクロール状態を取得する
実際にスクロール量を取得する場合は、document.scroll().y とJavaScript中で取得することが出来る。
<script type="text/javascript">
alert(document.scroll().y); //縦スクロール量をアラート表示
</script>最近のJavaScript記述は上記のような方法が多くなってきている。少し蛇足になるが、document.scroll()のFunction内部で、this.body.scrollTopのように、document部分をthisとして参照させている。このように参照させる事で、多少の速度向上ができる。
関連する記事
- ieFixed HTC - min-width max-widthをIE6で利用する
- Alpha Transparency PNG - VMLでアルファチャンネルを含むPNG表示
- Scroll RSS Icon - スクロールに連動するRSSアイコンの作り方
- Breadcrumb CSS - Appleに習うパンくずデザインCSS
- Array.remove - JavaScriptで指定した値を配列から削除処理
- Array.merge - JavaScriptで2つの配列をマージ処理
- scrollTop scrollLeft - ブラウザのスクロール状態を取得する
- CSSとJavaScriptでmin-width max-width を実装する

