2013-03-27 2 views
1

오른쪽에 Google지도가 포함 된 범례가있는 페이지를 만듭니다. "범례 숨기기"버튼을 클릭하면 범례 div를 숨기고 페이지 너비 (1000px)를 채우기 위해지도 div의 너비를 720 픽셀에서 증가시키고 싶습니다.jquery를 사용하여 div를 숨기고 동시에 다른 div의 너비를 애니메이션해야합니다.

또한 "숨기기 범례"버튼을 숨기고 "범례 표시"버튼을 표시합니다.

기본적으로 작동하지만지도 div가 번쩍이고 부드럽게 움직이지 않습니다. 720 픽셀로 시작합니다. 전설이 부드럽고 부드럽게 미끄러 져서 mp div가 1000 픽셀로 페이지를 채우는 것처럼 보입니다.

이것은 나를 미치게합니다 ... 그리고 나는 수색을하고 정확한 상황을 찾을 수 없습니다. 모든 포인터에 미리 감사드립니다.

<script> 
$(document).ready(function() { 

$(".hideLegend").click(function() { 
    $(this).hide(); 
    $("#legend").hide("slide", { direction: "left" }, 500); 
    $("#map").animate({ width: "1000"}, 500); 
    $(".showLegend").show(); 


}); 

    }); 
    </script> 
+0

나는 요소가 같은데요 'hide()'가'display '를 none으로 설정함으로써 문서 흐름에서 요소들을 제거하기 때문에, 사물들이 움직이기 시작 하는가 ?? – adeneo

답변

1

hideanimate 애니메이션 완료에서 실행하는 기능을 가지고 :

여기 내 jQuery의. 이 애니메이션을 사용하여 다음 애니메이션을 시작한 다음 완료되면 show을 수행하십시오. 뭔가 같이 :

$("#legend").hide("slide", { direction: "left" }, 500, function() { 
    $("#map").animate({ width: "1000"}, 500, function() { 
     $(".showLegend").show(); 
    }); 
}); 

편집 : 의견에서, 당신의 바이올린과 결합이 원하는 결과를 생성합니다

$(".hideLegend").click(function() { 
    $(this).hide(); 
    $("#legend").animate({ width: "0"}, 500); 
    $("#map").animate({ width: "1000"}, 500, function() { 
     $(".showLegend").show(); 
     $("#tabs").hide(); 
    }); 
}); 

$(".showLegend").click(function() { 
    $(this).hide(); 
    $("#tabs").show(); 
    $("#legend").animate({ width: "280" }, 500); 
    $("#map").animate({ width: "720"}, 500, function() { 
     $(".hideLegend").show(); 
    }); 
}); 

DEMO : http://jsfiddle.net/2Mpdc/3/

+0

그게 도움이되지만지도가 페이지 너비를 채우는 동안 범례가 넘어서도록 동시에 일어 나길 원합니다. 이전에는 그렇게 했었지만 애니메이션이 동시에 발생하지 않고 하나씩 발생하도록 만듭니다. –

+0

@ user2217431 기존 코드를 사용하지만 맵의 콜백 함수 안에'.showlegend' 쇼를 래핑하는 것은 불가능합니까? 마크 업과 함께 jsfiddle을 게시 할 수 있습니까? – mattytommo

+0

처음으로 jfiddle를 사용했습니다. 내가 제대로했으면 좋겠다. http://jsfiddle.net/ltdesign/2Mpdc/ –

관련 문제