2012-08-28 4 views
0

윈도우의 크기가 변경되면 속성을 변경하려고합니다. 크기를 조정 한 후 원래 속성으로 돌아갈 수 있습니까?jQuery : 윈도우의 크기가 조절되는 경우에만 이벤트 발생

$(document).ready(function() { 
    $('div').css('do 1'); 
}); 

$(window).resize(function(){ 
    $('div').css('do 2 and when resize is finished go back to 1'); 
}); 
+1

'resize'는 이벤트입니다. 해고 될 때만 할 수 있습니다. if 조건으로 사용할 수 없습니다. – xdazz

답변

1

다음은이

http://jsfiddle.net/Varinder/U3MKP/

처럼 뭔가 (단지의 경우 바이올린 링크 나던 작품) 코드를 당신의 크기 조정 기능을한다 수정 시도

수정할 수 있습니다
$(document).ready(function() { $('div').css('do 1'); }); 

var t; 
$(window).resize(function() { 
    clearTimeout(t); 
    $('div').css('do 2'); 
    t = setTimeout(function() { 
    //resize end (sort-of-hacky) event fires here. 
    $('div').css('do 1'); 
    }, 100); 
}); 
+0

정확히 내가 무엇을 찾고 있었습니까. 나는 비슷한 것을 시도했으나 타임 아웃 중에 엉켜있었습니다. Varinder에게 감사드립니다! – Yisela

4

.resize()은 부울 속성이 아닌 이벤트입니다.

그래서 창 크기를 조정할 때 발생시키는 핸들러를 지정할 수 있습니다.

$(window).resize(function() { 
    $('body').prepend('<div>' + $(window).width() + '</div>'); 
}); 
-1
$(window).on("resize" , function(){ 
// do something 
}); 

은 화소 크기가 변경 될 때마다 소성되기 때문에 I이 기능을 스로틀 바랍니다. 그래서 밑줄처럼 사용할 수 있습니다. 그러면 초당 60 프레임 씩 코드가 실행됩니다.

$(window).on("resize" , _.throttle(function(){ 
    // do something 
} , 1000/60)); 
+0

질문에 답하지 않고 있습니다. :) – bPratik

0

당신이 같은 일을하려고하는 것 같습니다 :

$(window).resize(function() { 
    var n = $(window).width; 
    var trigger_num = 1000; 

    if (n > trigger_num) { 
    $('div').css('do something'); 
    } 
    else { 
    $('div').css('do something else'); 
    } 
}); 

트리거 번호는 기본적으로 윈도우가 특정 크기를 초과하는 경우 CSS를 트리거 정의하는 숫자입니다. 물론 이것은 등 <, ==,

+0

유동적 인 디자인입니다. 누군가가 크기를 변경하거나 크기를 조정할 때마다이 이벤트가 발생하기를 원합니다. – Yisela

+0

@Marko가 제공 한 것만 있으면됩니다. $ (window) .resize (function() {* code *}); – ckaufman

관련 문제