Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数启动太早_Javascript_Jquery_Scroll - Fatal编程技术网

Javascript 函数启动太早

Javascript 函数启动太早,javascript,jquery,scroll,Javascript,Jquery,Scroll,我正在使用jQueryAjax构建一个联系人系统。表单的div有一个高度,所以我认为如果您单击输入(OnFocus),div会变大,并且当您向上或向下滚动时,div会返回到其常规高度,这将是一件好事。问题是,单击后,div变大,然后立即返回到其常规高度。这是我的密码: var big = false, lastpalce = "", position = ""; function contectboxreturn() { if (big) { $("#c

我正在使用jQueryAjax构建一个联系人系统。表单的div有一个高度,所以我认为如果您单击输入(OnFocus),div会变大,并且当您向上或向下滚动时,div会返回到其常规高度,这将是一件好事。问题是,单击后,div变大,然后立即返回到其常规高度。这是我的密码:

var big = false,
    lastpalce = "",
    position = "";

function contectboxreturn() {
    if (big) {
        $("#contact").animate({
            "height": "515px"
        }, 400);
        $("#showclosebutton").hide(fast);
        big = false;
    }
}

function contectboxresize() {
    if (!big) {
        big = true;
        lastpalce = $(this).scrollTop();
        position = $("#contact").offset();
        $("html, body").animate({
            scrollTop: position.top + "px"
        }, 400);
        $("#contact").animate({
            "height": "100%"
        }, 400);
        $("#showclosebutton").show(fast);
        $(function () {
            $(window).scroll(function () {
                if (position.top != $(this).scrollTop()) {
                    contectboxreturn();
                }
            });
        });
    }
}

尝试将滚动事件放置在contectboxresize()函数之外,如下所示:

var big = false,
lastpalce = "",
position = "";


$(function () {
    $(window).scroll(function () {
        if (position.top != $(this).scrollTop()) {
            contectboxreturn();
        }
    });
});

function contectboxreturn() {
    if (big) {
        $("#contact").animate({
            "height": "515px"
        }, 400);
        $("#showclosebutton").hide(fast);
        big = false;
    }
}

function contectboxresize() {
    if (!big) {
        big = true;
        lastpalce = $(this).scrollTop();
        position = $("#contact").offset();
        $("html, body").animate({
            scrollTop: position.top + "px"
        }, 400);
        $("#contact").animate({
            "height": "100%"
        }, 400);
        $("#showclosebutton").show(fast);
    }
}

将“大”设置为TRUE作为动画的回调。像这样

 $("#contact").animate({
     "height": "100%"
 }, 400, function(){
     big = true;
 });

触发此事件的事件是什么?@epascarello创建一个演示。在犹他州。net@charlietfl