在窗口调整大小时进行jquery脚本更新?

时间:2017-03-01 13:44:06

标签: javascript jquery

我制作了一个jquery脚本,它依赖于视口宽度和视口高度的变量。 这是包含viewportwidthviewportheight变量的脚本,存储在自己的文档中:

var viewportwidth,viewportheight;"undefined"!=typeof window.innerWidth?(viewportwidth=window.innerWidth,viewportheight=window.innerHeight):"undefined"!=typeof document.documentElement&&"undefined"!=typeof document.documentElement.clientWidth&&0!=document.documentElement.clientWidth?(viewportwidth=document.documentElement.clientWidth,viewportheight=document.documentElement.clientHeight):(viewportwidth=document.getElementsByTagName("body")[0].clientWidth,viewportheight=document.getElementsByTagName("body")[0].clientHeight);

这是脚本:

function kjør() {
    if ((viewportwidth / viewportheight) >= 1.33) {
            $('#redline').appendTo('body');
        $('#sitewrap').on('scroll', function(e) {
            if ($(this).scrollTop() > (viewportheight / 100 * 40)) {
                $('body').addClass('fix');
                $('#headerwrap').appendTo('body');
            } else {
                $('body').removeClass('fix');
                $('#headerwrap').appendTo('header');
            }
        $("#logo-top").css("opacity", 1 - $(this).scrollTop() / (viewportheight / 100 * 30));
        });
    } else {
        $('#headerwrap').appendTo('body');
        $('#redline').prependTo('#headerwrap');
        $('body').removeClass('fix');
    };
};
$(function() {
    kjør();
    $(window).resize(kjør());
});

你可以在底部。我尝试过这样做,以便在window调整大小后更新脚本。然而,这不起作用。该脚本仍将使用在pageload上建立的viewportwidthviewportheight。 如何让脚本在窗口大小调整时重新评估视口高度和视口宽度?

1 个答案:

答案 0 :(得分:2)

你的问题是下面的一行:

 $(window).resize(kjør());

将其更改为:

 $(window).resize(kjør);

当你使用sintax function_name()时,你引用的是函数的返回值,而不是函数本身。