javascript执行前的延迟

时间:2016-08-17 17:28:33

标签: javascript html

我使用以下javascipt动态居中文本。

$(function() {
    $('.centre-dyn').css({
        'position' : 'absolute',
        'left' : '50%',
        'top' : '50%',
        'margin-left' : function() {return -$(this).outerWidth()/2},
        'margin-top' : function() {return -$(this).outerHeight()/2}
    });
});

但是,当我加载页面时,文本会在快速居中之前显示在未中心位置。如何使文本立即居中?

2 个答案:

答案 0 :(得分:1)

一个选项是在Aurora0001链接时,隐藏内容然后在JS运行后显示它。另一种是在html元素后面加上脚本标记。因此,您不需要准备好文档,它将立即运行:

<div class="centre-dyn"></div>
<script>
    $('.centre-dyn').css({
        'position' : 'absolute',
        'left' : '50%',
        'top' : '50%',
        'margin-left' : function() {return -$(this).outerWidth()/2},
        'margin-top' : function() {return -$(this).outerHeight()/2}
    });
</script>

如果jQuery是在头标记中加载的,或者在文档中此点之前的某处加载,那应该可以正常工作。但实际上我建议在CSS中这样做,而不是根据评论。

答案 1 :(得分:1)

$(function(){})是简写或$(document).ready();您的代码在文档准备好后执行,而不是立即执行。正如其他人所提到的:使用css会更有意义,并且会立即集中。

例如:

.centre-dyn {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}