Javascript 垂直居中页面“;“跳跃”;在镀铬重新加载时,FF和IE工作正常
我使用以下jQuery代码在浏览器窗口内垂直居中放置一个网站,如果它高于外层包装div(具有固定的宽度和高度) 这在Firefox和InternetExplorer11中运行良好;在这里,网站始终固定在中心位置 但在Chrome中,每次重新加载页面时(例如通过菜单导航),包装器都会跳到顶部,然后返回到中心。或者更确切地说,它是在应用js更改之前呈现的……就像代码在Chrome中运行得太晚一样 我对JS很陌生,所以我很难理解我发现的Chrome加载太晚了,但这似乎是一个常见的问题Javascript 垂直居中页面“;“跳跃”;在镀铬重新加载时,FF和IE工作正常,javascript,jquery,html,css,google-chrome,Javascript,Jquery,Html,Css,Google Chrome,我使用以下jQuery代码在浏览器窗口内垂直居中放置一个网站,如果它高于外层包装div(具有固定的宽度和高度) 这在Firefox和InternetExplorer11中运行良好;在这里,网站始终固定在中心位置 但在Chrome中,每次重新加载页面时(例如通过菜单导航),包装器都会跳到顶部,然后返回到中心。或者更确切地说,它是在应用js更改之前呈现的……就像代码在Chrome中运行得太晚一样 我对JS很陌生,所以我很难理解我发现的Chrome加载太晚了,但这似乎是一个常见的问题 这是一个Chro
这是一个Chrome问题,是因为它处理JS文件的方式,还是在这种情况下,Chrome中是否有任何解决办法使javascript加载更快或更早 我只能假设您想要实现的目标是使您的网页始终处于中心对齐状态。这可以单独使用CSS完成,而不需要任何JS。只需在包装元素上设置一个固定的宽度,并将
边距设置为auto
或0auto
。这将为您居中显示页面
编辑
关于垂直定位,我将创建一个固定高度的视口,并使用position:absolute
和margin:auto
对其进行定位。我制作了一把小提琴来演示如何做到这一点。当然,这需要一个带有position:relative
的父元素集,并且相信该元素也需要一个固定的高度,但这比使用JavaScript解决方案要好
编辑2
另外两个小提琴演示如何使用html
和body
元素来实现所需的结果。通过将这两个元素设置为高度:100%
和宽度:100%
,然后在主体上使用位置:相对
,您可以使用底部:0;身高:90%;左:0;保证金:自动;位置:绝对位置;右:0;排名:0在创建的viewport/wrapper
元素上执行code>以使其真正居中
我只能假设您试图实现的目标是使您的网页始终处于中心对齐状态。这可以单独使用CSS完成,而不需要任何JS。只需在包装元素上设置一个固定的宽度,并将边距设置为auto
或0auto
。这将为您居中显示页面
编辑
关于垂直定位,我将创建一个固定高度的视口,并使用position:absolute
和margin:auto
对其进行定位。我制作了一把小提琴来演示如何做到这一点。当然,这需要一个带有position:relative
的父元素集,并且相信该元素也需要一个固定的高度,但这比使用JavaScript解决方案要好
编辑2
另外两个小提琴演示如何使用html
和body
元素来实现所需的结果。通过将这两个元素设置为高度:100%
和宽度:100%
,然后在主体上使用位置:相对
,您可以使用底部:0;身高:90%;左:0;保证金:自动;位置:绝对位置;右:0;排名:0在创建的viewport/wrapper
元素上执行code>以使其真正居中
我只能假设您试图实现的目标是使您的网页始终处于中心对齐状态。这可以单独使用CSS完成,而不需要任何JS。只需在包装元素上设置一个固定的宽度,并将边距设置为auto
或0auto
。这将为您居中显示页面
编辑
关于垂直定位,我将创建一个固定高度的视口,并使用position:absolute
和margin:auto
对其进行定位。我制作了一把小提琴来演示如何做到这一点。当然,这需要一个带有position:relative
的父元素集,并且相信该元素也需要一个固定的高度,但这比使用JavaScript解决方案要好
编辑2
另外两个小提琴演示如何使用html
和body
元素来实现所需的结果。通过将这两个元素设置为高度:100%
和宽度:100%
,然后在主体上使用位置:相对
,您可以使用底部:0;身高:90%;左:0;保证金:自动;位置:绝对位置;右:0;排名:0在创建的viewport/wrapper
元素上执行code>以使其真正居中
我只能假设您试图实现的目标是使您的网页始终处于中心对齐状态。这可以单独使用CSS完成,而不需要任何JS。只需在包装元素上设置一个固定的宽度,并将边距设置为auto
或0auto
。这将为您居中显示页面
编辑
关于垂直定位,我将创建一个固定高度的视口,并使用position:absolute
和margin:auto
对其进行定位。我制作了一把小提琴来演示如何做到这一点。当然,这需要一个带有position:relative
的父元素集,并且相信该元素也需要一个固定的高度,但这比使用JavaScript解决方案要好
编辑2
另外两个小提琴演示如何使用html
和body
元素来实现所需的re
$( document ).ready(function() {
centerPage();
)};
// center page vertically if viewport higher than wrapper
function centerPage(){
var viewportHeight = $(window).height();
var siteHeight = $('#wrapper').height();
if(viewportHeight > siteHeight){
$('#wrapper').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('#wrapper').outerWidth()/2,
'margin-top' : -$('#wrapper').outerHeight()/2
});
}
}
// center page vertically if viewport higher than wrapper
function centerPage(){
var viewportHeight = $(window).height();
var siteHeight = $('#wrapper').height();
if(viewportHeight > siteHeight){
$('#wrapper').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('#wrapper').outerWidth()/2,
'margin-top' : -$('#wrapper').outerHeight()/2,
'display' : 'block'
});
}
}
$(function(){
centerPage();
});
<div id="wrapper" style="display:none;">center</div>