hashchangeイベントで取得したwindow.scrollY
およびwindow.pageYOffset
など、現在のスクロールの値が期待とだいぶ違う。
- ハッシュチェンジしてください
- 適当にスクロールしてください
- ボタンをクリックして現在のスクロール値を参照してください
- ブラウザの「戻る」をします
- 再取得するので、現在のスクロール値を参照するはずがハッシュチェンジ以前の値を取得します
- ブラウザの「進む」をします
- さきほど「戻る」をした瞬間のスクロール値が取得されます
- ...なぜだろう
$ ->
$input = $('input')
$('button').on 'click', ->
$input.val window.pageYOffset # => 現在のscrollY
$(window).on 'hashchange', ->
$input.val window.pageYOffset # => hashchangeする前のscrollYが返される
window.scrollTo 0, 0
...なぜだ?!
ChromeでもFirefoxでも同じだったから仕様っぽい。
hashchangeでも現在のきちんとした値を取得したいのだけど、無理なんだろうか。。。