애니메이션 메서드

imjingu·2023년 7월 30일
0

개발공부

목록 보기
235/481

animate() : 애니메이션 메서드

    기본형
    $('요소 선택').animate({스타일 속성}, 적용 시간, 가속도, 콜백함수)

1) 스타일 속성 : 애니메이션으로 적용할 스타일 속성
2) 적용 시간 : 동작에 반응하는데 소요되는 시간

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <title>Document</title>
    <script>
        

        $(function() {
            // button:eq(0) 클릭하면 발생하는 이벤트
           $('button:eq(0)').click(function () { 
            // .m0 의 왼쪽 포지션 값이 500 으로 애니메이션 발생후 다시 0으로 되는 애니메이션 발생
            $('.m0').animate({left: 500}, 'fast', 'swing').animate({left:0}, 'slow', 'swing')
           });
           // button:eq(1) 클릭하면 이벤트 발생
           $('button:eq(1)').click(function() {
                // 포지션 top값이 -50으로 인해서 위로 올라가 박스 화면에서 보이지 않음
                $('.m1 span').css('top',-50);
                // 왼쪽 포지션 값이 500 으로 애니메이션 발생후 다시 0으로 되는 애니메이션 발생하게 되면 다음 함수 실행
                $('.m1').animate({left: 500}, 'fast', 'swing').animate({left:0}, 'slow', 'swing', function() {
                    // this = 바로 전 발생한 이벤트, this이벤트 에서 span을 찾아 top30으로 하는 이벤트를 발생시켜 글자가 내려오게 보임
                    $(this).find('span').animate({top: 30}, 'fast', 'swing')
                });
           });
           // 왼쪽 값을 클릭 할때마다 증가시킴
           $('button:eq(2)').click(function() {
            $('.m2').animate({ left: '+=200'}, 'fast', 'swing');
           });
           // toogle로 인해 클릭하면 발생, 다시 클릭하면 복귀
           $('button:eq(3)').click(function() {
            $('.m3').animate({ width: 'toggle'}, 'fast', 'swing');
           });
        });
    </script>
    <style>
        * {
            margin: 5px;
        }
        div {
            width: 100px; height: 100px; background: #ff6600; position: relative;
        }
        .m1 {
            overflow: hidden;
        }
        .m1 span {
            position: relative;
            top: -50px;
        }
    </style>
</head>
<body>
   <button>animate1</button>
   <div class="m0"></div>
   <button>animate2</button>
   <div class="m1"><span>애니메이션1</span></div>
   <button>animate3</button>
   <div class="m2"></div>
   <button>animate4</button>
   <div class="m3"></div>
   
</body>
</html>

0개의 댓글