スクロールが可能なのを知らせる矢印マークの動きで、要素が裂ける感じが斬新なCSSを使ったアニメーション
PR
wave simulation
ちょっと、見たことない感じでとても斬新。
矢印マークがふわふわと動いて、スクロールができることを知らせることはよく使われますが、このアイディアは斬新。
矢印マークの動きと合わせて、矢印マークに押し込まれるかのように裂けて行く感じが、良い。
コード
HTML
<div class="foo"></div>
CSS
@blue: #457BBE; body{ background: #E2E2E2; } .foo { position: absolute; bottom: 0; left: 0; width: 50%; height: 200px; background: @blue; -webkit-transform: translateZ(0); -webkit-animation: foo 2.5s linear alternate infinite; -moz-transform: translateZ(0); -moz-animation: foo 2.5s linear alternate infinite; } .foo:after ,.foo:before{ content: ''; position: absolute; } .foo:after{ right: -100%; width: 100%; height: 200px; background: @blue; -webkit-animation: bar 2.5s linear alternate infinite; -moz-animation: bar 2.5s linear alternate infinite; } .foo:before{ top: -200px; left: 100%; width: 50px; height: 50px; border-style: solid; border-color: transparent black black transparent; border-width: 5px; background: transparent; -webkit-transform: rotate(45deg) translateX(-70%); -webkit-animation: arrow 2.5s linear alternate infinite; -moz-transform: rotate(45deg) translateX(-70%); -moz-animation: arrow 2.5s linear alternate infinite; } @-webkit-keyframes foo{ 80%{ border-radius: 0; } 98%,100%{ border-top-right-radius: 100%; } } @-webkit-keyframes bar{ 80%{ border-radius: 0; } 98%,100%{ border-top-left-radius: 100%; } } @-webkit-keyframes arrow{ 0%,50%{ top: -200px; } 25%,75%{ top: -175px; } 98%,100%{ top: 50px; } } @-moz-keyframes foo{ 80%{ border-radius: 0; } 100%{ border-top-right-radius: 100%; } } @-moz-keyframes bar{ 80%{ border-radius: 0; } 100%{ border-top-left-radius: 100%; } } @-moz-keyframes arrow{ 0%,50%{ top: -200px; } 25%,75%{ top: -175px; } 100%{ top: 50px; } }
(コードはダブルクリックで簡単に全選択でコピー出来ます)
どういう理屈で動いているかというと、矢印の部分はpositionの位置の変化をアニメーション化
下の裂ける要素は、border radius を使って角を丸めるのをアニメーション化して表現
下の要素は2つの要素で出来ていて、ひとつはfoo もう一つはfooの擬似要素 after を利用
矢印の部分はfooの擬似要素のbeforeで出来てます
PR
COMMENT