Chrome を使用して Web サイトを開発しているときに、次の動作に気付きました。ページを一番下までスクロールしているときにページを更新すると、垂直方向のジャンプが見られます。
次のBootplyを参照してください。
再現するには、フルスクリーン プレビュー (右側のモニター アイコン) を開き、次のことを試してください。
- ページを更新 (フォームの再送信を確認) --> ジャンプなし
- 中央にスクロール、更新 (フォームの再送信を確認) --> ジャンプなし
- 一番下までスクロールし、更新 (フォームの再送信を確認) --> 垂直ジャンプ
.align-center
ジャンプは実際には、ページにクラスの図が含まれている場合に垂直のリズムを維持しようとする次の Javascript によって引き起こされます。
$(document).ready(function() {
$(window).resize(function() {
var baseline = parseInt($('body').css('line-height'), 10)
$('.align-center').each(function() {
var height = $(this).outerHeight();
console.log(height)
var bottom = baseline - (height % baseline);
if (bottom != 0)
{
bottom += parseInt($(this).css('padding-bottom'), 10)
$(this).css('padding-bottom', bottom);
}
});
}).trigger("resize");
});
もちろん、この Javascript を削除すると、観測された垂直ジャンプも削除されます。私が理解していないのは、DOM の準備ができたときにパディングが適用されるため、目に見える垂直ジャンプが発生しないことです。ジャンプは、ページが一番下までスクロールされたときにChromeがビューポートを処理する方法に関係していると思いますが、これを確認/確認する方法が本当にわかりません。
これを Firefox または Safari で試してみると、ジャンプは見られません。
何かアイデアはありますか?