[CSS]拡大表示する際、CSS3でぼよよ~んとしたアニメーションを加えるチュートリアル
Post on:2012年5月30日
sponsorsr
サムネイルを拡大表示する際など、単にズームするだけでなくCSS3を使ってバウンドのアニメーションを加えるスタイルシートのチュートリアルを紹介します。

Showing Image With Bounce Effect
[ad#ad-2]
デモ
デモは左下の十字ボタンをクリックしてください。

[ad#ad-2]
十字ボタンをクリックすると、パネルがスライド表示され、各アイテムをクリックすると、バウンドのアニメーションを伴って、ぼよよ~んと拡大表示されます。

実装
HTML
中央に配置する領域をdiv要素で確保し、スライドするパネルはdiv要素で、各アイテムはリスト要素で実装します。
<div id="item-receiver"></div>
<div id="thumbnail-wrapper">
<img src="images/plus.png" id="plus" width="60">
<ul class="item-list">
<li><img class="item" src="images/item/craftertees.jpg" width="70"></li>
<li><img class="item" src="images/item/gene.jpg" width="70"></li>
<!-- To n image -->
</ul>
</div>
CSS
パネルや各アイテムのスタイルを定義します。
#thumbnail-wrapper {
position: fixed;
bottom: 0;
left: 0;
height: 90px;
background: #f1f1f1;
text-align: left;
padding: 10px 15px;
box-shadow: 0px 0px 10px #ccc;
width: 60px;
}
#plus {
float: left;
margin-top: 1em;
cursor: pointer;
transition: .2s ease-in-out;
}
.clicked {
transform: rotate(45deg);
}
.item-list {
list-style-type: none;
margin: 0;
padding: 0;
display: none;
}
.item-list li {
display: inline-block;
margin-left: 1em;
}
.item {
cursor: pointer;
transition: .2s ease-in-out;
}
.item:hover {
box-shadow: 0 0 10px #aaa;
transform: scale(1.02);
}
#item-receiver {
display: block;
text-align: left;
margin-bottom: 7em;
}
#item-receiver img {
display: inline-block;
margin: 0 0 2em 2em;
width: 205px;
box-shadow: 5px 9px 5px rgba(0,0,0,.3);
}
バウンドのアニメーションは「scale」を使用します。
キーフレームを使い、最初に一番大きくし、元より小さくし、ちょっとだけ大きくし、実寸大にします。
@keyframes show{
0% {
transform: scale(1.2);
}
50% {
transform: scale(0.9);
}
75% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
.show {
animation: show 0.5s ease-in;
}
JavaScript
jQueryを使用して、トリガーとなるクリックイベントを設定します。
itemReceiver = $('#item-receiver');
$('.item').on('click', function() {
//Scroll to bottom if overflowing the page height
$('body').animate({ scrollTop: $(document).height() }, 1000);
//Add to itemReceiver with bouncing effect
$(this).clone().appendTo(itemReceiver).addClass('show');
});
sponsors











