1
다음 스크립트를 사용하여 사이드 메뉴를 엽니 다. 메뉴가 한 줄씩 열립니다. 그러나 메뉴 버튼을 빠르게 누르면 애니메이션이 생성됩니다. 어떻게 이런 일이 일어나지 않게 할 수 있습니까? 전에 .stop (true) 및 .finish()를 시도했지만 원하는 효과를 얻지 못했습니다. 나는 jQuery에 익숙하지 않기 때문에 아마 뭔가 잘못하고있을 것이다.어떻게 jQuery에서 애니메이션 생성을 멈출 수 있습니까?
var s = 0;
var navMenu = document.getElementById("nav_menu");
var navBtn = document.getElementById("btn");
var speed = 100;
function menuOpen() {
if (s==0){
$("#nav_menu").scrollTop(0);
navBtn.classList.add('close');
navMenu.style.zIndex = "4";
navMenu.style.overflowY = 'auto';
$('ul').each(function() {
$(this).children().each(function(i) {
$(this).delay(i * speed).animate({
left: 0
});
});
});
s++;
$("li").promise().done(function() {
navMenu.style.zIndex = "4";
navMenu.style.overflowY = 'auto';
});
} else {
navBtn.classList.remove('close');
$('ul').each(function() {
$(this).children().each(function(i) {
$(this).delay(i * speed).animate({
left: "100%"
});
});
});
s=0;
$("li").promise().done(function() {
navMenu.style.zIndex = "0";
navMenu.style.overflowY = 'hidden';
});
};
};
가능하면 답변을 설명하십시오. 감사합니다.
안녕 감사를 호출해야합니다. 그러나 이것은 효과가 없습니다. 애니메이션 루프가 엉망입니다. 애니메이션을 중지합니다. 그러나 내가 버튼을 클릭 할 때까지 달려가는 곳. 그것들은 접히지 만 나머지 줄들은 단지 함께 열립니다. – user1306732
jsfiddle에 코드를 추가하고 링크를 제공 할 수 있습니까? –
Jsfiddle에서 애니메이션을 표시하지 않으므로 여기에 파일을 업로드했습니다. http://mgolan.com/temp/menu/ 데모가 포함 된 CSS 애니메이션으로 효과를 만들 수있었습니다. 여기에 : http://stackoverflow.com/questions/39485115/how-can-i-identify-when-the-opening-closing-css-animation-ends-with-javascript 하지만 다른 문제가 있습니다. – user1306732