jQuery animate hover slide

2021. 12. 8. 10:52Study/jQuery

 

CSS transition으로도 구현할 수 있지만, jQuery로 구현하면 easing효과도 사용할 수 있다.

 

 

stop()

* animate의 계산을 멈춰준다.
* animate hover효과 시 stop() 메소드를 꼭 써줘야 한다.
* stop을 써주지 않으면 마우스 hover한 횟수 만큼 animate가 멈추지 않고 실행된다.
또는 clearQueue를 사용해준다. (이게 더 좋음)

 

 

clearQueue();

* animate의 계산을 취소/삭제 한다.
stop은 단순히 멈추게 해주는것이고, clearQueue는 큐(저장공간)를 삭제시켜준다. (훨씬 좋다)

 

 

 

 

예제 :)

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>animate</title>
    <style>
        *{margin: 0; padding: 0;}
        body{font-family:'Spoqa Han Sans Neo'; font-size: 16px; color:#333; line-height:1.6; margin: 20px;}
        a{color:inherit; text-decoration:none;}
        img{vertical-align:top;}

        div{margin:20px}
  
        .box1{width:296px; height:130px; border:1px solid #ccc; overflow:hidden;}
        .box1 a{position:relative; left:0; top:0; display:block; width:296px; height:260px;}
        .box2{width:296px; height:130px; border:1px solid #ccc; overflow:hidden;}
        .box2 a{position:relative; left:0; top:0; display:block; width:592px; height:130px;}
        
    </style>
    <script src="./js/jquery-1.12.4.min.js"></script>
    <script src="./js/jquery-migrate-1.4.1.min.js"></script>
    <script src="./js/jquery.easing.1.3.js"></script>
    <script>
        $(document).ready(function(){

            $('.box1 a').hover(  // toggle도 사용 가능
                function(){
                    $(this).animate({top:-130},1000, 'easeOutBounce').clearQueue();  // q사용, 한개만 사용해도 됨
                }, 
                function(){
                    $(this).animate({top:0},500);
            });

            $('.box2 a').hover(
                function(){
                    $(this).stop().animate({left:-296},1000,'easeOutBounce'); // stop사용
                }, 
                function(){
                    $(this).stop().animate({left:0},500); // stop사용
            });

        });
    </script>
</head>
<body>
    
    <div class="box1">
        <a href="#"><img src="images/image1.jpg" alt=""></a>
    </div>
    <div class="box2">
        <a href="#"><img src="images/image2.jpg" alt=""></a>
    </div>

</body>
</html>

 

 

'Study > jQuery' 카테고리의 다른 글

jQuery animate rotate (feat.CSS)  (0) 2021.12.08
jQuery animate caption  (0) 2021.12.08
jQuery ex animate  (0) 2021.12.08
jQuery animate() feat.easing  (0) 2021.12.08
jQuery 간단 갤러리 index  (0) 2021.12.07