2013-12-09 78 views
0

我正在用jQuery ajax構建聯繫系統。窗體的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(); 
       } 
      }); 
     }); 
    } 
} 
+0

什麼是被觸發這個事件? – epascarello

+0

@epascarello

+0

創建演示。在jsfiddle.net – charlietfl

回答

0

大集爲TRUE作爲動畫的回調。像這樣。

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

updated fiddle

+0

這是可行的!非常感謝你的配合! –

0

試着將你的滾動事件OUTSIDE您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); 
    } 
} 
+0

這不會halp:S –