본문 바로가기

최신의 홈페이지를 보면 화면을 스크롤 할 때 배경의 이미지가
스크롤에 비해 더 조금씩 움직임으로써 역동적으로 보이게 하는 기술을 볼 수 있습니다.
javascript로 스크롤에 따른 CSS의 background-position을 조정하여 구현한 기능으로
기존에 jQuery를 이용한 플러그인이 있어 소개합니다.

MIT라이선스를 가지고 있습니다.

홈페이지

DEMO

Install

bower로 설치할 경우

bower install Parallax-ImageScroll

npm으로 설치할 경우

npm install parallax-imagescroll

일반 사용법

Markup

<div class="img-holder" data-image="anImage.jpg"></div>

<section><p>Content that "slides" on top of the images</p></section>

<div class="img-holder" data-image="anotherImage.jpg">[optional content to be displayed on top of the images]</div>

javascript

jQuery와 jquery.imageScroll.js를 먼저 임포트한 후 설정값을 지정해 줍니다.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="../jquery.imageScroll.js"></script>
<script>
      $('.img-holder').imageScroll({
//            image: null,
//            imageAttribute: 'image',
//            container: $('body'),
//            speed: 0.2,
//            coverRatio: 0.75,
//            holderClass: 'imageHolder',
//            holderMinHeight: 200,
//            extraHeight: 0,
//            mediaWidth: 1600,
//            mediaHeight: 900,
//            parallax: true,
//            touch: false
      });
  </script>

모바일 사용법

Markup

일반이미지와 모바일이미지를 분기할 수 있게 2개를 작성

  <div class="img-holder" data-image="img/german_landscapes-1600x900.jpg" data-image-mobile="img/german_landscapes-800x450.jpg"></div>  

<section><p>Content that "slides" on top of the images</p></section>

 <div class="img-holder" data-image="img/japan_digital_nature-1680x1050.jpg" data-image-mobile="img/japan_digital_nature-800x500.jpg" data-width="1680" data-height="1050">[optional content to be displayed on top of the images]</div>

javascript

Modernizr.touch일 경우 모바일 이미지로 분기하여 로딩함

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="../jquery.imageScroll.js"></script>
    <script>
        var touch = Modernizr.touch;
        $('.img-holder').imageScroll({
            imageAttribute: (touch === true) ? 'image-mobile' : 'image',
            touch: touch
        });
    </script>

JOS39 블로그

여행과 맛집 그리고 일상에 대해 나만 몰랐던 이야기들..