2016-04-24 2 views
3

私はjQueryのを使用してこの効果を実現しようとしている:に私は必要スクロールで「バルーン効果」をどうやって得ることができますか?

enter image description here

  • .projectがビューポートであるかどうかを判断します。
  • オブジェクトがビューポートに25%(上から75%)になるまでに、0.3から1の範囲でスケールし、不透明度を0から1に変更する必要があります。

これは私が持っているものですが、スクロールするとカードは逆に一気に進んでいるようです。

$(window).scroll(function() { 
 
    var scrollTop = $(window).scrollTop(), 
 
     scaleVal = (1/scrollTop), 
 
     screenBottom = $(window).scrollTop() + $(window).height(), 
 
     offset = $('.project').offset().top; 
 
    if(scrollTop > (scrollTop/2)){ 
 
     $(".project").css('transform', "scale("+scaleVal+")"); 
 
     $(".project").css('opacity', scaleVal); 
 
    } 
 
}); 
 

 
// var screenBottom = $(window).height(); 
 
// $(window).scroll(function{ 
 
// screenBottom = $(window).height() + $(window).scrollTop(); 
 
// if (screenBottom == cardStartsHeight) { 
 
// // magic on the card 
 
// } 
 
// });
@charset "UTF-8"; 
 
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,800|Gentium+Book+Basic); 
 
.project--image, .project--description { 
 
    float: left; 
 
} 
 

 
body { 
 
    background: #eee; 
 
    font-family: "Open Sans", arial, sans-serif; 
 
} 
 

 
img { 
 
    width: 100%; 
 
    height: auto; 
 
} 
 

 
#wrapper { 
 
    margin: 0 auto; 
 
    max-width: 1024px; 
 
    padding: 0 30px; 
 
} 
 
#wrapper::after { 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 

 
.side-bar { 
 
    width: 20%; 
 
    position: fixed; 
 
    top: 30px; 
 
} 
 
.side-bar .logo { 
 
    border-bottom: dashed 1px #ccc; 
 
    padding-bottom: 20px; 
 
} 
 
.side-bar .logo .avatar { 
 
    height: 90px; 
 
    width: 90px; 
 
    background-color: #ccc; 
 
    background-image: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/243277/avatar.jpg"); 
 
    background-size: cover; 
 
    border-radius: 50%; 
 
    margin-bottom: 10px; 
 
} 
 
.side-bar .logo .name { 
 
    font-size: 12px; 
 
    display: block; 
 
    text-transform: uppercase; 
 
} 
 
.side-bar .logo .title { 
 
    font-size: 16px; 
 
} 
 
.side-bar nav a { 
 
    color: #4A90E2; 
 
    margin-top: 20px; 
 
    text-decoration: none; 
 
    display: block; 
 
    font-size: 12px; 
 
} 
 
.side-bar nav a i { 
 
    margin-right: 6px; 
 
    opacity: 0.5; 
 
    -webkit-transition: all 0.15s ease-out 0s; 
 
    transition: all 0.15s ease-out 0s; 
 
} 
 
.side-bar nav a:hover i { 
 
    opacity: 1; 
 
} 
 

 
main { 
 
    width: 75%; 
 
    box-sizing: border-box; 
 
    margin-left: 25%; 
 
} 
 

 
.project { 
 
    margin-top: 30px; 
 
    box-shadow: 0 8px 20px rgba(50, 50, 50, 0.3); 
 
    background: white; 
 
    padding: 70px; 
 
    border-radius: 9px; 
 
} 
 
.project::after { 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 
.project--image { 
 
    display: inline-block; 
 
    width: 25%; 
 
} 
 
.project--description { 
 
    width: 75%; 
 
    box-sizing: border-box; 
 
    padding-left: 20px; 
 
} 
 
.project--description .title { 
 
    font-size: 30px; 
 
    margin-bottom: 10px; 
 
} 
 
.project--description .about { 
 
    font-family: "Gentium Book Basic", serif; 
 
    font-size: 20px; 
 
    line-height: 26px; 
 
    margin-bottom: 20px; 
 
} 
 
.project--description .cta { 
 
    color: #4A90E2; 
 
    text-align: right; 
 
    text-decoration: none; 
 
} 
 
.project--description .cta:after { 
 
    -webkit-transition: all 0.15s ease-out 0s; 
 
    transition: all 0.15s ease-out 0s; 
 
    content: "→"; 
 
    margin-left: 5px; 
 
} 
 
.project--description .cta:hover:after { 
 
    margin-left: 10px; 
 
} 
 

 
footer { 
 
    margin-top: 30px; 
 
    padding-top: 30px; 
 
    border-top: dashed 1px #ccc; 
 
    font-size: 12px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script> 
 

 
<div id="wrapper"> 
 
    <aside class="side-bar"> 
 
    <h1 class="logo"> 
 
     <div class="avatar"></div><span class="name">Aaron Benjamin</span><span class="title">Digital UX Designer</span> 
 
    </h1> 
 
    <nav><a href="#" target="_blank"><i class="fa fa-dribbble"></i> Dribbble</a><a href="#" target="_blank"><i class="fa fa-twitter"></i> Twitter</a><a href="#" target="_blank"><i class="fa fa-medium"></i> Medium</a><a href="#" target="_blank"><i class="fa fa-codepen"></i> Code Pen</a></nav> 
 
    </aside> 
 
    <main> 
 
    <article class="project"> 
 
     <div class="project--image"><img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt=""/></div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <article class="project"> 
 
     <div class="project--image"><img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt=""/></div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <article class="project"> 
 
     <div class="project--image"><img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt=""/></div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <footer> 
 
     <p>Hello</p> 
 
    </footer> 
 
    </main> 
 
</div>

+0

、あなたはすべての '.project'要素上のすべてのスクロールをCSSを編集しています。代わりに個々のアイテムに取り組む必要があります。 – Jhecht

+0

私は、[This Code Pen](http://codepen.io/jhechtf/pen/aNaoJo?editors=0010)で今作業している非常に荒い作業をしています。 – Jhecht

答えて

0

編集

私は私があなたのオリジナルのポストでインラインもう少し何かを得たと思います。

既知のバグ特にスニペットエディタ上

  1. 最初の要素は技術的に画面の下に重なっているので、あなたはいくつかの奇妙なスケーリングを取得します。最初の要素が重なっていないため、このコードをCodepenで使用したときに問題はありませんでしたが、問題になることを想像することができました。おそらく、最初の子をスキップするコードがありますか?

  2. 私はときどき(本当に速くスクロールする)、大きくなったり小さくなったりするようなことがあります。たぶんMath.minまたはMath.maxを使用してください。そこにあるオーバーラップどのくらい私たちを与える下の値から、窓の高さを削除する場合

  1. は、ウィンドウの高さ対下の位置に見えるコードが何をするのか。
  2. 次に、この値をとり、ウィンドウの高さに基づいて小数点に変換します。
  3. アイテムの初期縮尺を設定します。 .each()より速い方法があったと思うが、見つけられなかった。
  4. スクロールを確認します。ポイント#3の2番目の文を参照してください。

ハッピーコーディング!

function fractional_overlay(el) { 
 
    var rect = el.getBoundingClientRect(); 
 
    //Bounding Client Rectangle; 
 
    var win_height = $(window).height(); 
 
    return (rect.bottom - win_height)/win_height; 
 

 
} 
 

 
$(document).ready(function() { 
 
    //Initial Set for items off screen. I could not find a faster way 
 
    $('.project').each(function(i, el) { 
 

 
    var sf = fractional_overlay(el); 
 
    // sf = Scale Factor; 
 

 
    if (sf > 0 && sf < 1) { 
 
     $(el).css({ 
 
     'transform': 'scale(' + sf + ',' + sf + ')' 
 
     }); 
 
    } 
 

 
    }); 
 

 
    //On every scroll, check to see that the items are either above the viewport or inside it. 
 
    $(document).scroll(function(e) { 
 

 
    $('.project').each(function(i, el) { 
 
     var sf = fractional_overlay(el); 
 
     if (sf > 0 && sf < 1) { 
 
     sf = 1 - sf; 
 
     $(el).css({ 
 
      'transform': 'scale(' + sf + ',' + sf + ')' 
 
     }); 
 
     } 
 
    }); 
 

 
    }); 
 
});
@charset "UTF-8"; 
 
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,800|Gentium+Book+Basic); 
 
.project--image, 
 
.project--description { 
 
    float: left; 
 
} 
 
body { 
 
    background: #eee; 
 
    font-family: "Open Sans", arial, sans-serif; 
 
} 
 
img { 
 
    width: 100%; 
 
    height: auto; 
 
} 
 
#wrapper { 
 
    margin: 0 auto; 
 
    max-width: 1024px; 
 
    padding: 0 30px; 
 
} 
 
#wrapper::after { 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 
.side-bar { 
 
    width: 20%; 
 
    position: fixed; 
 
    top: 30px; 
 
} 
 
.side-bar .logo { 
 
    border-bottom: dashed 1px #ccc; 
 
    padding-bottom: 20px; 
 
} 
 
.side-bar .logo .avatar { 
 
    height: 90px; 
 
    width: 90px; 
 
    background-color: #ccc; 
 
    background-image: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/243277/avatar.jpg"); 
 
    background-size: cover; 
 
    border-radius: 50%; 
 
    margin-bottom: 10px; 
 
} 
 
.side-bar .logo .name { 
 
    font-size: 12px; 
 
    display: block; 
 
    text-transform: uppercase; 
 
} 
 
.side-bar .logo .title { 
 
    font-size: 16px; 
 
} 
 
.side-bar nav a { 
 
    color: #4A90E2; 
 
    margin-top: 20px; 
 
    text-decoration: none; 
 
    display: block; 
 
    font-size: 12px; 
 
} 
 
.side-bar nav a i { 
 
    margin-right: 6px; 
 
    opacity: 0.5; 
 
    -webkit-transition: all 0.15s ease-out 0s; 
 
    transition: all 0.15s ease-out 0s; 
 
} 
 
.side-bar nav a:hover i { 
 
    opacity: 1; 
 
} 
 
main { 
 
    width: 75%; 
 
    box-sizing: border-box; 
 
    margin-left: 25%; 
 
} 
 
.project { 
 
    transition: all linear 0.3s; 
 
    margin-top: 30px; 
 
    box-shadow: 0 8px 20px rgba(50, 50, 50, 0.3); 
 
    background: white; 
 
    padding: 70px; 
 
    border-radius: 9px; 
 
} 
 
.project::after { 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 
.project--image { 
 
    display: inline-block; 
 
    width: 25%; 
 
} 
 
.project--description { 
 
    width: 75%; 
 
    box-sizing: border-box; 
 
    padding-left: 20px; 
 
} 
 
.project--description .title { 
 
    font-size: 30px; 
 
    margin-bottom: 10px; 
 
} 
 
.project--description .about { 
 
    font-family: "Gentium Book Basic", serif; 
 
    font-size: 20px; 
 
    line-height: 26px; 
 
    margin-bottom: 20px; 
 
} 
 
.project--description .cta { 
 
    color: #4A90E2; 
 
    text-align: right; 
 
    text-decoration: none; 
 
} 
 
.project--description .cta:after { 
 
    -webkit-transition: all 0.15s ease-out 0s; 
 
    transition: all 0.15s ease-out 0s; 
 
    content: "→"; 
 
    margin-left: 5px; 
 
} 
 
.project--description .cta:hover:after { 
 
    margin-left: 10px; 
 
} 
 
footer { 
 
    margin-top: 30px; 
 
    padding-top: 30px; 
 
    border-top: dashed 1px #ccc; 
 
    font-size: 12px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="wrapper"> 
 
    <aside class="side-bar"> 
 
    <h1 class="logo"> 
 
     <div class="avatar"></div><span class="name">Aaron Benjamin</span><span class="title">Digital UX Designer</span> 
 
    </h1> 
 
    <nav><a href="#" target="_blank"><i class="fa fa-dribbble"></i> Dribbble</a><a href="#" target="_blank"><i class="fa fa-twitter"></i> Twitter</a><a href="#" target="_blank"><i class="fa fa-medium"></i> Medium</a><a href="#" target="_blank"><i class="fa fa-codepen"></i> Code Pen</a> 
 
    </nav> 
 
    </aside> 
 
    <main> 
 
    <article class="project" id="first"> 
 
     <div class="project--image"> 
 
     <img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt="" /> 
 
     </div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" 
 
     class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <article class="project" id="second"> 
 
     <div class="project--image"> 
 
     <img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt="" /> 
 
     </div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" 
 
     class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <article class="project" id="third"> 
 
     <div class="project--image"> 
 
     <img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt="" /> 
 
     </div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" 
 
     class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <footer> 
 
     <p>Hello</p> 
 
    </footer> 
 
    </main> 
 
</div>

ここでは簡単な答えです:

私が見た問題は、あなたのスクロールには、ページ上のすべての.project要素のスタイルを編集していたということでした。私が$(document)スクロールを使用する理由は、$('.project')スクロールで何も起こらなかったためです。うまくいけば、これは、正確に効果を得るために使用できる良い出発点を与えます。私が何をしたかの

一覧:

  1. 私は、要素がビューポートの中にあったかどうかを取得する方法を発見しました。私は別のStack Overflow questionからこれを見つけました。これはデフォルトのコード(ちょうどあなたがそれを必要とするかもしれない場合に備えて残しました)がビューポートを上方向にも縮小させる要素を引き起こしていたためです。あなたのデモに基づいて、私はあなたがそれを望んでいないと思った。
  2. なぜウィンドウを使用していたのかわかりませんでした。正直なところ、windowの代わりにdocumentオブジェクトを使用しました。窓が良い方法かもしれません、私は正直に分かりません。
  3. あなたのCSSには.scaleクラスと宣言が追加されました。
  4. 私はin_viewport_or_higher機能を編集しながら、私のデバッグを支援するために<article>タグにidを追加しました。

(主に後でこの答えを見つけた人のための)JavaScriptコードの説明

  1. 使用すると、2つの関数宣言を無視した場合、$(document).ready()コールで始まる、私は.projectのすべての要素を通過し、追加しますそれらが下端の下にある場合はスケールクラスです。
  2. スクロールイベントリスナーをドキュメントに追加します。
  3. すべてのスクロールでは、.projectsコレクション内の要素をループし、表示されているかどうかを再評価する必要があります。私たちの発見に応じてスケールクラスを切り替えます。

あなたは

を行うことができますどのようなあなたはまだ底縁の下に隠された各元素の割合を把握し、手動ようにスケールがtransformスタイル宣言に.css()呼び出しを介して量を変換設定することを使用することができますそれは「すべてか何か」のアプローチではありません。ちょうどあなたのコードで一目を与える

function in_viewport_or_higher(el) { 
 
    var rect = el.getBoundingClientRect(); 
 

 
    return (
 
    rect.left >= 0 && 
 
    rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */ 
 
    rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ 
 
); 
 
} 
 

 
function in_viewport(el) { 
 

 
    //special bonus for those using jQuery 
 
    if (typeof jQuery === "function" && el instanceof jQuery) { 
 
    el = el[0]; 
 
    } 
 

 
    var rect = el.getBoundingClientRect(); 
 

 
    return (
 
    rect.top >= 0 && 
 
    rect.left >= 0 && 
 
    rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */ 
 
    rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ 
 
); 
 
} 
 
$(document).ready(function() { 
 
    //Initial Set for items off screen. I could not find a faster way 
 
    $('.project').each(function(i, el) { 
 
    $(this).toggleClass('scale', !in_viewport_or_higher(el)); 
 
    }); 
 

 
    //On every scroll, check to see that the items are either above the viewport or inside it. 
 
    $(document).scroll(function(e) { 
 

 
    $('.project').each(function(i, el) { 
 
     $(this).toggleClass('scale', !in_viewport_or_higher(el)); 
 
    }); 
 

 
    }); 
 
});
@charset "UTF-8"; 
 
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,800|Gentium+Book+Basic); 
 
.project--image, 
 
.project--description { 
 
    float: left; 
 
} 
 
body { 
 
    background: #eee; 
 
    font-family: "Open Sans", arial, sans-serif; 
 
} 
 
img { 
 
    width: 100%; 
 
    height: auto; 
 
} 
 
#wrapper { 
 
    margin: 0 auto; 
 
    max-width: 1024px; 
 
    padding: 0 30px; 
 
} 
 
#wrapper::after { 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 
.side-bar { 
 
    width: 20%; 
 
    position: fixed; 
 
    top: 30px; 
 
} 
 
.side-bar .logo { 
 
    border-bottom: dashed 1px #ccc; 
 
    padding-bottom: 20px; 
 
} 
 
.side-bar .logo .avatar { 
 
    height: 90px; 
 
    width: 90px; 
 
    background-color: #ccc; 
 
    background-image: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/243277/avatar.jpg"); 
 
    background-size: cover; 
 
    border-radius: 50%; 
 
    margin-bottom: 10px; 
 
} 
 
.side-bar .logo .name { 
 
    font-size: 12px; 
 
    display: block; 
 
    text-transform: uppercase; 
 
} 
 
.side-bar .logo .title { 
 
    font-size: 16px; 
 
} 
 
.side-bar nav a { 
 
    color: #4A90E2; 
 
    margin-top: 20px; 
 
    text-decoration: none; 
 
    display: block; 
 
    font-size: 12px; 
 
} 
 
.side-bar nav a i { 
 
    margin-right: 6px; 
 
    opacity: 0.5; 
 
    -webkit-transition: all 0.15s ease-out 0s; 
 
    transition: all 0.15s ease-out 0s; 
 
} 
 
.side-bar nav a:hover i { 
 
    opacity: 1; 
 
} 
 
main { 
 
    width: 75%; 
 
    box-sizing: border-box; 
 
    margin-left: 25%; 
 
} 
 
.project { 
 
    transition: all linear 0.7s; 
 
    margin-top: 30px; 
 
    box-shadow: 0 8px 20px rgba(50, 50, 50, 0.3); 
 
    background: white; 
 
    padding: 70px; 
 
    border-radius: 9px; 
 
} 
 
.project.scale { 
 
    opacity: 0.2; 
 
    transform: scale(0.2, 0.2); 
 
} 
 
.project::after { 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 
.project--image { 
 
    display: inline-block; 
 
    width: 25%; 
 
} 
 
.project--description { 
 
    width: 75%; 
 
    box-sizing: border-box; 
 
    padding-left: 20px; 
 
} 
 
.project--description .title { 
 
    font-size: 30px; 
 
    margin-bottom: 10px; 
 
} 
 
.project--description .about { 
 
    font-family: "Gentium Book Basic", serif; 
 
    font-size: 20px; 
 
    line-height: 26px; 
 
    margin-bottom: 20px; 
 
} 
 
.project--description .cta { 
 
    color: #4A90E2; 
 
    text-align: right; 
 
    text-decoration: none; 
 
} 
 
.project--description .cta:after { 
 
    -webkit-transition: all 0.15s ease-out 0s; 
 
    transition: all 0.15s ease-out 0s; 
 
    content: "→"; 
 
    margin-left: 5px; 
 
} 
 
.project--description .cta:hover:after { 
 
    margin-left: 10px; 
 
} 
 
footer { 
 
    margin-top: 30px; 
 
    padding-top: 30px; 
 
    border-top: dashed 1px #ccc; 
 
    font-size: 12px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="wrapper"> 
 
    <aside class="side-bar"> 
 
    <h1 class="logo"> 
 
     <div class="avatar"></div><span class="name">Aaron Benjamin</span><span class="title">Digital UX Designer</span> 
 
    </h1> 
 
    <nav><a href="#" target="_blank"><i class="fa fa-dribbble"></i> Dribbble</a><a href="#" target="_blank"><i class="fa fa-twitter"></i> Twitter</a><a href="#" target="_blank"><i class="fa fa-medium"></i> Medium</a><a href="#" target="_blank"><i class="fa fa-codepen"></i> Code Pen</a> 
 
    </nav> 
 
    </aside> 
 
    <main> 
 
    <article class="project" id="first"> 
 
     <div class="project--image"> 
 
     <img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt="" /> 
 
     </div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" 
 
     class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <article class="project" id="second"> 
 
     <div class="project--image"> 
 
     <img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt="" /> 
 
     </div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" 
 
     class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <article class="project" id="third"> 
 
     <div class="project--image"> 
 
     <img src="http://simonpan.com/wp-content/themes/sp_portfolio/assets/prime-music-tile-hero.jpg" alt="" /> 
 
     </div> 
 
     <div class="project--description"> 
 
     <h2 class="title">Hello World</h2> 
 
     <p class="about">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima architecto numquam eius dicta mollitia quo consequuntur ducimus eveniet eos modi voluptate quidem saepe aliquid distinctio esse temporibus delectus, repellat facere?</p><a href="#" 
 
     class="cta">Read more</a> 
 
     </div> 
 
    </article> 
 
    <footer> 
 
     <p>Hello</p> 
 
    </footer> 
 
    </main> 
 
</div>

関連する問題