jQueryの.offset() を使うとiPhoneやiPadでずれるバグを解消したい


jQueryの.offset() を使うと正確なロケーションが取得できないケースがあるようです。

その場合はネイティブなJavaScriptの.offsetを使うと解消され、正しい挙動となります

改善前


$('.anc').click(function(e){
e.preventDefault();
var offset = $('#targetId01').offset();
var y = offset.top;
scrollTo(0,y);
});
});

改善後


$('.anc').click(function(e){
e.preventDefault();
var y = document.getElementById('targetId01').offsetTop;
scrollTo(0,y);
});
});