2011-09-26 5 views
3

클릭 한 링크/단추에 따라 div를 슬라이드/해제하는 함수를 만들려고합니다.jQuery를 사용하여 div on/on 페이지를 밀어 넣는 방법

기본 구조 : 나는

$('.button').click(function() { 
    $('.box').each(function() { 

그러나 물론 단지 루프의 일종으로 작동하고 그것은 단지 어떻게, 첫 번째와 마지막 사업부 슬라이드 사용하고

현재
<div class="button"><a href="#">Click Box #1</a> </div> 
<div class="button"><a href="#">Click Box #2</a> </div> 
<div class="button"><a href="#">Click Box #3</a> </div> 

<div id="container"> 

    <div id="box1" class="box">Box #1</div> 
    <div id="box2" class="box">Box #2</div> 
    <div id="box3" class="box">Box #3</div> 

</div> 

나는 각 단추를 슬라이드 아웃 한 다음 적절한 div에 넣습니다. 지금까지이 무엇

예 : http://jsfiddle.net/ykbgT/538/

답변

2

당신은 항상, n은 클릭 한 링크의 인덱스 n 번째 상자를 보여이 같은 시도 할 경우

$('.button').click(function() { 
    var index = $(this).index(".button"); 
    var $box = $(".box:eq(" + index + ")"); 

    $(".box").not($box).animate({ 
     left: '150%' 
    }, 500); 

    if ($box.offset().left < 0) { 
     $box.css("left", "150%"); 
    } else if ($box.offset().left > $('#container').width()) { 
     $box.animate({ 
      left: '50%', 
     }, 500); 
    } 
}); 

업데이트 된 예 :http://jsfiddle.net/andrewwhitaker/2uV2h/

0

가장 유연한 방법은 해당 상자의 ID의 이름이 당신의 DIV 태그에 사용자 정의 속성을 추가하는 것입니다. 예 :

당신의 클릭 기능에서 다음
<div class="button" boxid="box1">.... 

:

$('.button').click(function() { 
    mybox=$(this).attr("boxid"); 
    $(mybox).[whatever code you need to slide the DIV in and out of the screen] 
    .... 
} 
관련 문제