自动对齐脚本在页面加载时不对齐但在刷新时不对齐?

时间:2013-06-07 05:55:36

标签: javascript jquery html css centering

嗨,请看看我的网站,有问题的代码片段我必须集中我的图像,因为我从来没有运气与css-html方法。有时它会加载居中,有时它不会,请告诉我如何在页面加载时将图像居中。

网站:http://bit.ly/11nAQJK

<script type="text/javascript"> //Centering Script


$(document).ready(function () {
    updateContainer();
    $(window).resize(function() {
        updateContainer();
    });
});


function updateContainer() {


(function ($) {
$.fn.vAlign = function() {
    return this.each(function(i){
    var h = $(this).height();
    var oh = $(this).outerHeight();
    var mt = (h + (oh - h)) / 2;    
    $(this).css("margin-top", "-" + mt + "px"); 
    $(this).css("top", "50%");
    $(this).css("position", "absolute");    
    }); 
};
})(jQuery);

(function ($) {
$.fn.hAlign = function() {
    return this.each(function(i){
    var w = $(this).width();
    var ow = $(this).outerWidth();  
    var ml = (w + (ow - w)) / 2;    
    $(this).css("margin-left", "-" + ml + "px");
    $(this).css("left", "50%");
    $(this).css("position", "absolute");
    });
};
})(jQuery);

3 个答案:

答案 0 :(得分:0)

要做到这一点,你有很多变种。在你的情况下,你可以这样做

<div style="
  background: url('Assets/OrderSheet.png') center center no-repeat;
  width: 100%;
  height: 500px;
 ">
    <a href="Assets/OrderSheet.xls"> 
    </a>
 </div>

答案 1 :(得分:0)

我为此使用CSS而不是JavaScript,但另一个故事。我想,回答你的问题。 pageLoad会优于.ready

答案 2 :(得分:0)

您正在使用$(document).ready(),因此该功能在DOM准备就绪时执行,但不一定所有图像都已加载,因此高度和宽度信息尚不可用,当您刷新页面,信息可用,您将获得所需的行为。

要解决此问题,请使用$(window).load(),因此当页面上的所有内容都已完全加载时会执行此功能,并且可以使用宽度和高度等信息,并且您应该在页面第一次获得所期望的内容时加载。

或者,如果您需要继续使用$(document).ready(),则需要明确指定图像等元素的尺寸,以便在加载DOM时,浏览器已经知道尺寸而不是必须等待图像等元素完全加载。