당신의 도움이 필요합니다. jquery 패널로 애니메이션을 적용하고 싶습니다. 그것은 버튼 (함수 OPEN_PANEL)을 클릭하여 열어야하고 다른 PHP 페이지를로드 한 다음 클래스 "닫기"(함수 CLOSE_PANEL)를 사용하여 div를 클릭 할 때 닫아야합니다. 잘 작동하지만, 이미 열려있는 패널을 열려고 할 때 문제가 발생합니다. 그것은 열려있는 하나를 닫아야하고 그 후에 내가 선택한 마지막을 열어야하지만 동시에 두 함수를 실행하는 것처럼 보입니다. 문제를 어떻게 해결할 수 있습니까? Jquery : 다른 함수가 끝나면 함수를 실행하십시오.
var panel_is_open=0;
var last_open_panel="";
function animation_open_panel(id){
window_height=$(window).height()*0.85;
$("#"+id+"_button").css({'background-color':'rgba(255,255,255,0.8)', 'box-shadow':'0px 5px 10px #39C', '-webkit-box-shadow':'0px 5px 10px #39C'});
$("#main_panel").show().animate({ height: window_height+"px" }, 1500)
.animate({ width: "90%" },1000);
$("#main_panel").queue(function(){
$(".close").show();
$("#page_container").hide().load(id+"/"+id+".php",function(){
$("#page_container").fadeIn(1000);
});
$(this).dequeue();
});
}
function animation_close_panel(){
$("#page_container").fadeOut(1000, function(){
$("#main_panel").animate({ width: "637px" }, 1000)
.animate({ height:"0px" }, 1500, function(){
$(".close").hide();
$("#"+last_open_panel+"_button").css({'background-color':'', 'box-shadow':'', '-webkit-box-shadow':''});
});
});
}
function close_panel(){
if(panel_is_open==1){
animation_close_panel();
panel_is_open=0;
}
}
function open_panel(id){
if(panel_is_open==0){
animation_open_panel(id);
last_open_panel=id;
}
else if(panel_is_open==1){
if(id!=last_open_panel){
close_panel();
open_panel(id);
}
}
panel_is_open=1;
}
당신의 도움이 사전에 대단히 감사합니다
이 자바 스크립트 코드입니다.
제안 해 주셔서 감사합니다.하지만 두 가지 해결책으로 문제를 해결할 수 없습니다. 나는 어떤 것을 착각하고 있지만 나는 무엇을 이해할 수 없다.
이 내 코드입니다 : 내가 착각하고
function close_panel(){
if(panel_is_open==1){
// animations here
panel_is_open=0;
}
}
function close_open_panel(next){
close_panel();
next();
}
function open_panel(id){
if(panel_is_open==0){
// animations here
last_open_panel=id;
panel_is_open=1;
}
else if(panel_is_open==1){
if(id!=last_open_panel){
close_open_panel(function(){
open_pannel(id);
});
}
}
}
어떤 생각? 감사합니다. .
와우, 강력 해 보입니다. – bzlm