在使用 Chrome 开发网站时注意到以下行为:当我在页面完全滚动到底部时刷新页面时,我可以观察到垂直跳转。
请参阅以下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 中尝试此操作时,我没有观察到任何跳跃。
请问有什么想法吗?