2016-06-23 3 views
0

나는 mouseleave 애니메이션이 뒤 따르는 마우스 오버 애니메이션이 있습니다. 불행히도 mouseleave 이벤트가 트리거 될 때까지 첫 번째 애니메이션이 완료되지 않은 경우 두 번째 애니메이션이 실행되지 않습니다.첫 번째 애니메이션이 완료되기 전에 두 번째 애니메이션 실행

.wrapper { 
    background-color:red; 
    padding:10px; 
    position:relative; 
    width:100px; 
} 

.top { 
    background-color:blue; 
    height:100px; 
    position:relative; 
    width:100px; 
} 

.bottom { 
    background-color:green; 
    cursor:pointer; 
    height:40px; 
    width:100px; 
} 

.popup { 
    background-color:yellow; 
    bottom:-10px; 
    display:none; 
    left:19px; 
    opacity:0; 
    padding:10px; 
    position:absolute; 
} 

JQuery와에게

HTML

<div class="wrapper"> 
    <div class="top"> 
    <div class="popup"> 
     popup 
    </div> 
    </div> 
    <div class="bottom"></div> 
</div> 

CSS 아래에 내 코드를 참조

나는 JSFiddle 페이지 내 코드 포함했다
var popupVisible = false; 

$('div.bottom').mouseover(function() { 
    if (popupVisible === false) { 
    $(this).parent().children('.top').children('.popup').css({'display':'block'}).animate({ 
     opacity:1, 
     bottom:+10 

    }, 500, function() { 
     popupVisible = true; 
    }); 
    } 
}); 

$('.wrapper').mouseleave(function() { 
    if (popupVisible === true) { 
    $(this).children('.top').children('.popup').animate({ 
     opacity:0, 
     bottom:-10 

    }, 300, function() { 
     $(this).css({'display':'none'}); 
     popupVisible = false; 
    }); 
    } 
}); 

-https://jsfiddle.net/n0uxaw8c/1/

를 내가 mouseleave 이벤트가 트리거 될 때 첫 번째 애니메이션을 중지 한 다음 두 번째 애니메이션을 실행해야합니다. 어떤 도움 :)이 있지만

답변

0

에 대한

많은 감사가 귀하의 질문에 확실히 대답하지 않습니다, 당신은 또한 더 원활하게 실행 CSS,이 작업을 수행 할 수있다.

CSS의 transition 속성을 사용하여 멋진 애니메이션을 만들 수 있습니다.

내가 여기 JSFiddle 만들었습니다 https://jsfiddle.net/n0uxaw8c/2/

+0

불행히도 나는 마우스가 .bottom의 사업부 가리킬 때 트리거 팝업을 필요로하는이 CSS와 함께 작동 할 수 있다고 생각하지 않습니다, 답변 주셔서 감사합니다, 하지만 마우스가 부모 div (.wrapper)의 영역을 벗어날 때 사라지게해야합니다. –

관련 문제