Hatena::ブログ(Diary)

tkrdの日記 (rails や ubuntu のことなど)

株式会社オイアクス (東京都港区芝大門) で社長をしています。

2011-11-30

JavaScript: Chrome で window.scrollBy が効かない場合の解決方法

23:25

http://example.com/foo#bar みたいなページがロードされたら、#bar の位置までスクロールされますが、10ピクセルだけスクロールを戻したいとします。

Firefoxでは、次のコードでOK。

$(document).ready(function () {
  window.scrollBy(0, -10);
});

しかし、Chromeではダメ。#bar までスクロールする処理は、ドキュメントが ready になった後で行われるから。

ちょっと汚いけど、次のように書きます。

$(document).ready(function () {
  setTimeout(function() { window.scrollBy(0, -10); }, 1);
});

[参考資料]