2012-10-04 4 views
4

내 머리글을 축소하고 크기를 변경 한 다음 화면 측면에 붙이기 위해 설계된 작은 JQuery 조각이 있습니다. 그것은 하나의 부분을 제외하고 모두 작동합니다. 높이 '토글 (toggle)'기능은 사용자가 스크롤 할 때마다 실행되며, 이는 실제로 자극적입니다.JQuery 스크롤 감지 한 번만 호출

스크롤을 한 번만 검색하거나 한 번만 토글 할 수있는 방법이 있습니까?

$(window).scroll(function() { 
var width = $(document).width() - 205; 
var height = $(document).height(); 
    $('#me').animate({ 
    marginLeft: width, 
    width: '22px', 
    height: 'toggle', 
    borderLeftWidth: "10px", 
    borderRightWidth: "10px"  
    }, 1000, function() { 
    $("#me:first").css("margin-top","-90px"); 
    var div = $('#me'); 
    $('#me h1').css("font-size","30px"); 
    var start = $(div).offset().top; 
    $(div).css("height", height); 
    $.event.add(window, "scroll", function() { 
     var p = $(window).scrollTop(); 
     $(div).css('position',((p)>start) ? 'fixed' : 'static'); 
     $(div).css('top',((p)>start) ? '0px' : ''); 
    }); 
    }); 
}); 
+0

깃발을 사용하여 해고 된 사실을 설정하십시오. – Champ

답변

10

모습입니다 확인하는 플래그를 사용 ..

4

는 처음 또는 jQuery의 하나() 기능 http://api.jquery.com/one/

그것은 한 번만 발생 후 즉시 자체를 제거에서하지

var doHeightToggle=true; 


$.event.add(window, "scroll", function() { 
    if(doHeightToggle) 
    { 
     var p = $(window).scrollTop(); 
     $(div).css('position',((p)>start) ? 'fixed' : 'static'); 
     $(div).css('top',((p)>start) ? '0px' : ''); 
     doHeightToggle = false; 
    } 
}); 
관련 문제