このページの本文へ

スクロールアニメーションによる立体コンテンツの見せ方 (1/2)

2014年07月22日 11時00分更新

文●本間宣光 / Stronghold

  • この記事をはてなブックマークに追加
本文印刷

今回の注目サイト:
MANUEL RUEDA

http://www.manuel-rueda.com/

Manuel Rueda 氏のビデオ作品を紹介するポートフォリオサイト。

スクロールによって立体的に浮かび上がるサムネイル

 サムネイルに視点をフォーカスさせる仕掛けが目を引く、動画のポートフォリオサイト「MANUEL RUEDA」。ページ中央にあるサムネイルには奥行きが設定されており、スクロールによって手前に起き上がってくる動きが斬新だ。サイドナビにもスクロールに合わせたギミックが用意されており、コンテンツを何度も行き来してしまうおもしろさがある。

 今回は、このサイトをヒントに、CSS3の3D表現とjQueryを使ったスクロールアニメーションを制作する。

STEP 1:スクロール値を取得する

 スクロール値を基にCSS3のプロパティを変化させるため、スクロール値を正しく取得することから始めよう。

 スクロール値は jQueryのscrollメソッドを使って取得する。以下のようにして現在のスクロール値を取得できる。

■ソースコード(HTML)

<p id="posy"></p>

■ソースコード(JavaScript)

$(window).on('scroll'function() {
    // 現在のスクロール位置
    var scrollPos = $(this).scrollTop();
    $('#posy').html('スクロール値: ' + scrollPos + 'px');
});

STEP 2:奥行きのあるコンテンツを作成する

 スクロール値を取得できているのが確認できたら、次にCSS3で奥行きのあるコンテンツを作成していく。

 アニメーションさせる要素「.card」を親要素「#content」で包み、奥行きを持たせるためのスタイル「.perspective」を定義する。

 「.card」には rotateX(90deg) を記述し、水平に倒した状態にしておく。コンテンツが下から起き上がるようなアニメーションにするため、変形の基準点となるtransform-originを要素の底辺中央(50%,100%)に設定する。

■ソースコード(HTML)

<div id="wrapper">
    <div id="section" class="inner red">
         <div id="content" class="perspective">
            <div class="card">
                <span>CONTENT</span>
            </div>
         </div>
    </div>
</div>

■ソースコード(CSS)

{
    margin: 0;
    padding: 0;
    border: 0;
    outline: none;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
        -ms-box-sizing: border-box;
         -o-box-sizing: border-box;
            box-sizing: border-box;
}
html, body {
    width: 100%;
    height: 100%;
}
#wrapper,
.inner {
    position: relative;
    width: 100%;
    height: 100%;
}
.perspective {
    -webkit-perspective: 1000px;
       -moz-perspective: 1000px;
           -ms-perspective: 1000px;
         -o-perspective: 1000px;
            perspective: 1000px;
    -webkit-transform-style: preserve-3d;
       -moz-transform-style: preserve-3d;
        -ms-transform-style: preserve-3d;
         -o-transform-style: preserve-3d;
            transform-style: preserve-3d;
}
.card {
    position: relative;
    display: block;
    margin: 0 auto;
    width: 100%;
    height: 100%;
    border: 10px solid #FFF;
    -webkit-transform-origin: 50% 100%;
       -moz-transform-origin: 50% 100%;
        -ms-transform-origin: 50% 100%;
         -o-transform-origin: 50% 100%;
            transform-origin: 50% 100%;
    -webkit-transform: rotateX(90deg);
       -moz-transform: rotateX(90deg);
        -ms-transform: rotateX(90deg);
         -o-transform: rotateX(90deg);
            transform: rotateX(90deg);
}
.card span {
    display: block;
    position: absolute;
    top: 50%;
    margin-top: -50px;
    width: 100%;
    height: 100px;
    color: #FFF;
    font-size: 80px;
    text-align: center;
    text-transform: uppercase;
    line-height: 100px;
}
.red { background: #F4726D}
.red .card { background: #F68985}
#content {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 50%;
}

前へ 1 2 次へ

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy