いつからのバージョンかわからないが(割と最近のだと思う)
Chromeで


「jQueryでページ内スムーズスクロール」


のスクリプトが上手く動かなくなった。
調べてみると


同じような症状の方がいた。


via
HTML Aタグにname idを指定して要素を空にした状態からjavascriptでoffset値取得した際のバグ? - Google Chrome 公式ヘルプフォーラム

要は

  • 直下に空のaタグを置くと、offsetが上手く取得できない

解決策は

空のaタグにdisplay:blockを指定してあげればよい。
未確認だが、空のタグなので空白が出来ることもない。
ということだろう


jQueryで書くなら

$(a:empty).css(display, block); 

で良い。