JavaScript: Chrome で window.scrollBy が効かない場合の解決方法
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);
});
[参考資料]