2008/04/02

[JavaScript]スクロール位置の取得

昨日、スタイルシートの「表示モード」とJavaScriptを使って表示モードを取得する方法について書きました。

で、どーしてこれが必要なのかというと、scrollTop、scrollHeight、scrollWidthなどを使いたい場合、表示モードによって、実装の仕方が変わってくるので、取得する必要があるのです。

IE6では標準モードの場合、「document.body」の属性取得で不適切な値が返されることがあります。
document.body.clientWidth/clientHeight/scrollWidth/scrollHeight などなど。

via:スクロール位置取得:kl_slx/y()

というわけで、スクロールの位置を取得したい場合、

/* IEの場合 */
var hoge;
//標準モードの場合
if(document.compatMode == "CSS1Compat"){
  hoge = document.documentElement.scrollTop;
//互換モードの場合
}else{
  hoge = document.body.scrollTop;
}

と書かないと、取得できない場合もあるようです。

firefoxの場合は、どうやって実装するんだろー(??)

時間があったら、後で検証してみたいと思います。

1 件のコメント:

  1. http://diaspar.jp/node/47

    こんな感じみたいね。

    所でふと思ったんだけど、XHTMLで
    今後htmlを書いていくと、頭にはXML
    宣言がつくのでDOCTYPEの宣言はその後になっちゃうよね。

    そうなると標準/互換モードの設定ができなくなるよーな。

    返信削除