どの要素がルートになるかはページのレンダリングモードに依存します。
標準準拠モードの場合は document.documentElement
、後方互換モードの場合は document.body
になります。これらは document.compatMode
を参照することで取得できます。
lang
1// ルート要素を取得
2var root = document.compatMode === "CSS1Compat" ? document.documentElement : document.body;
3
4// スクロール位置を変更
5root.scrollLeft = 805;
といいたいところですが……この仕様に WebKit 系の Chrome や Safari は準拠していません。これは Firefox と IE が正しい挙動です。
lang
1// 標準準拠モードの場合
2
3// Firefox/IE でのみスクロールする
4document.documentElement.scrollLeft = 805;
5
6// Chrome/Safari でのみスクロールする
7document.body.scrollLeft = 805;
さらに window.pageYOffset
は読み取り専用のプロパティであるためスクロール位置を変更することはできません。
ウィンドウ内のスクロール位置については、取得ではなく変更であれば window.scrollTo
または window.scrollBy
を使用することがおすすめです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/30 06:56