티스토리 뷰

자, 그러면 패러렉스를 직접 사용해보도록 하겠다.

일단 지난 시간 parallax 프로젝트 폴더에 dist 폴더가 생긴걸 기억할거다. 거기에서 parallax.min.js 파일을 복사해서 사용할거다.

저 두개 파일을 복사한다.(parallax.min.js, parallax.min.js.map 두개 파일)
적용하고자하는 프로젝트에 붙여넣는다.

자, 그럼 이제 html에 아래와 같이 parallax.min.js 파일을 적용한다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <script type="text/javascript" src="js/parallax.min.js"></script>

    <title>Parallax</title>
</head>
<body>
    
</body>
</html>

이렇게 했다면 index.html 파일을 브라우저를 통해 실행시키면 parallax.min.js 파일을 로딩하는 것을 확인 할 수 있다.

 

그러면 레이어로 사용할만한 이미지를 두장을 구해놓자. 나는 우주이미지와 로켓 이미지 두장을 구해다가 적용할 거다.

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <script type="text/javascript" src="js/parallax.min.js"></script>

    <style type="text/css">
    html, body {
        margin: 0;
        padding: 0;
    }

    #screen {
        width: 800px;
        height: 700px;
    }

    #screen img {
        width: 100%;
    }

    #screen img#rocket {
        width: 100px;
    }
    </style>
    <title>Parallax</title>
</head>
<body>
    <div id="screen">
        <div>
            <img src="sample001.jpg" />
        </div>
        <div>
            <img src="sample002.png" id="rocket" />
        </div>
    </div>
</body>
</html>

이렇게 했더니 화면은 이렇게 나온다.

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <script type="text/javascript" src="js/parallax.min.js"></script>

    <style type="text/css">
    html, body {
        margin: 0;
        padding: 0;
    }

    #screen {
        width: 800px;
        height: 700px;
        overflow: hidden;
    }

    #screen img {
        width: 100%;
    }

    .layer1 {
        background: url("sample001.jpg") no-repeat center / cover;
        width: 110%;
        height: 110%;
        margin-top: -20px;
        margin-left: -20px;
    }

    .layer2 {
        height: 100%;
    }

    #screen img#rocket {
        position: absolute;
        width: 100px;
        transform: rotate(90deg);
        left: 100px;
        top: 50%;
        margin-top: -50px;
    }
    </style>
    <title>Parallax</title>
</head>
<body>
    <div id="screen">
        <div class="layer1" data-depth="0.2"></div>
        <div class="layer2" data-depth="0.6">
            <img src="sample002.png" id="rocket" />
        </div>
    </div>
    <script type="text/javascript">
    var screen = document.getElementById("screen");
    var parallax = new Parallax(screen);
    </script>
</body>
</html>

막 이것저것 스타일도 추가하고 위치도 바꾸고 로켓 방향도 바꾸고했다.

 

그것보다 중요한건 레이어로 사용되는 div 태그에 data-depth라는 속성을 추가한 것과 body 닫기 태그 위에 있는 script를 확인 하자. 특히 스크립트쪽을 알아보자.

 

var screen = document.getElementById("screen");
var parallax = new Parallax(screen);

이렇게 하면 screen 아이디를 갖고 있는 엘리먼트 안에 있는 엘리먼트를 레이어로 data-depth에 따라 서로 다른 움직임을 보이게 된다.

 

이것을 jquery로 적용한다면 아래처럼 적용할 수 있을거다.

var parallax = new Parallax($("#screen")[0]);

별로 대수롭지 않은 이 코드는 아래와 같이 동작하게 한다는 것을 확인 할 수 있다.

 

용량이 너무 커서 이미지 사이즈가 작아진 점 이해바란다.

암튼 이렇게 마우스의 움직입에 따라 서로 다르게 움직이는 레이어를 확인할 수 있고 이를 통해 입체적인 착시를 일으켜 보다 다이나믹한 효과를 경험할 수 있다.

 

오늘은 여기까지.

안녕!

'Dev > Javascript' 카테고리의 다른 글

패러렉스(parallax.js) 사용해보기 #1  (0) 2019.06.21
jQuery UI Datepicker 한글화  (0) 2017.08.28
jQuery UI Datepicker만들기  (2) 2017.08.28
jQuery를 버리자 #1.jQuery에 대하여  (0) 2016.11.29
댓글
댓글쓰기 폼