Javascript 在页面加载之前触发jQuery代码,可能吗?

Javascript 在页面加载之前触发jQuery代码,可能吗?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有下面的jQuery,它当前在ODuction准备就绪时运行,但它正在调整元素的高度,但在加载页面后改变高度时看起来很难看,所以我的问题是:是否可以加载代码并在显示之前设置高度 $(document).ready(function () { // set hero height to max viewport var heroHeight = $(window).height(); var smsHeight = $('#send-text').height();

我有下面的jQuery,它当前在ODuction准备就绪时运行,但它正在调整元素的高度,但在加载页面后改变高度时看起来很难看,所以我的问题是:是否可以加载代码并在显示之前设置高度

$(document).ready(function () {
    // set hero height to max viewport
    var heroHeight = $(window).height();
    var smsHeight = $('#send-text').height();
    $('#oasis-hero').css('min-height', heroHeight - smsHeight - 140 + 'px');

    // hide video
    $('#hero-video').hide();

    // click function to auto play video
    $('.hero-text .primaryCta').on('click touchend', function (e) {
        $("#hero-video")[0].src += "&autoplay=1";
        $('#hero-video').show();
        $('#hero-video-bg').hide();
        $('.hero-text').hide();

        $(this).unbind("click");
    });
});

绝对可能。您只需要将代码放在相关html元素定义之后。您只需要避免引用尚未创建的元素

例如,此代码将在文档就绪事件之外完美地工作

<div id="myDiv"></div>
<script>
    $('#myDiv').hide(); // <-- will hide 'myDiv' since the element is already created
</script>
而这段代码什么也做不了

<script>
    $('#myDiv').hide(); // <-- won't hide 'myDiv' since the element is not created yet
</script>
<div id="myDiv"></div>

绝对可能。您只需要将代码放在相关html元素定义之后。您只需要避免引用尚未创建的元素

例如,此代码将在文档就绪事件之外完美地工作

<div id="myDiv"></div>
<script>
    $('#myDiv').hide(); // <-- will hide 'myDiv' since the element is already created
</script>
而这段代码什么也做不了

<script>
    $('#myDiv').hide(); // <-- won't hide 'myDiv' since the element is not created yet
</script>
<div id="myDiv"></div>

我认为这里的问题是窗口的高度,一旦加载整个DOM,它将被精确计算

var heroHeight = $(window).height();

我喜欢这样的想法:首先隐藏要调整其高度的元素,然后使用say fadein最终显示动画。

我认为这里的问题是窗口的高度,一旦加载整个DOM,将准确计算窗口的高度

var heroHeight = $(window).height();

我喜欢这样的想法:首先隐藏要调整其高度的元素,然后使用say fadein最后显示动画。

使用$window.loadinstead@JustinIurman坏主意,那将在$document之后执行。准备好了。你说得对,我的错。我应该读得更仔细些。我试过了,正如蒂姆所说,以后再做。@JamesBrandon你不能用CSS设置大小吗?大多数浏览器都有可用的功能。请使用$window.loadinstead@JustinIurman坏主意,那将在$document之后执行。准备好了。你说得对,我的错。我应该读得更仔细些。我试过了,正如蒂姆所说,以后再做。@JamesBrandon你不能用CSS设置大小吗?大多数浏览器都有可用的功能。我想,但我们这里有非常严格的方法,并且必须在1 JS文件中,因为它已经缩小,不能在页面中使用JS。@詹姆斯·布兰登:这不是限制。您可以在documentready处理程序之外的单个js文件中编写必要的代码。一定要把js引用放在页面的末尾,这在任何情况下都是一个好的做法。我确实把它放在了文档之外,但似乎没有启动,是的,我同意js应该放在底部,但是他们在这里不做,但我会提出,看看我们是否可以更改。@James Brandon:在html之后不引用js文件这是行不通的。您真的应该尽可能晚地加载js文件,以提高站点的总体性能。js文件加载块UI renderingI会,但我们这里有严格的方法,并且必须在1 js文件中,因为它已经缩小,不能在页面中执行js。@詹姆斯·布兰登:这不是限制。您可以在documentready处理程序之外的单个js文件中编写必要的代码。一定要把js引用放在页面的末尾,这在任何情况下都是一个好的做法。我确实把它放在了文档之外,但似乎没有启动,是的,我同意js应该放在底部,但是他们在这里不做,但我会提出,看看我们是否可以更改。@James Brandon:在html之后不引用js文件这是行不通的。您真的应该尽可能晚地加载js文件,以提高站点的总体性能。js文件加载块UI呈现