ぷるるんと動くアニメーションが気持ちいい!新感覚のナビゲーション -Gooey pagination
Post on:2014年10月30日
sponsorsr
コンテンツスライダーや縦長ページのナビゲーションでよく見かけるビュレットタイプのナビゲーションをかわいいアニメーションで実装するテクニックを紹介します。

アニメーションの操作が気持ちいいので、コンテンツより楽しんでしまうかも。
実際の操作は、下記ページでお楽しみください。
※Chrome, Safari, Firefox, IEは11では動作しました。

アイデアの元となったのは、Dribbbleのコンセプトからだそうです。

こっちの方はアニメーションが更に流体になっています。
実装はけっこうシンプルです。
HTML
各ビュレットはリスト要素で実装されています。
5つ点の上を「.select」が移動する感じです。
<ul class="dots"> <li class="select"></li> <li class="dot"></li> <li class="dot"></li> <li class="dot"></li> <li class="dot"></li> <li class="dot"></li> </ul>
CSS
スタイルシートは思ってたより、シンプルでした。
}
.dots{
list-style-type:none;
background:white;
-webkit-filter:blur(5px) contrast(10);
padding:0;
margin:0;
padding-top:20px;
padding-bottom:20px;
padding-left:20px;
margin-left:-10px;
padding-right:10px;
position:relative;
left:100px;
top:30px;
}
.dot{
display:inline-block;
vertical-align:middle;
border-radius:100%;
width:30px;
height:30px;
background:black;
margin-left:5px;
margin-right:5px;
cursor:pointer;
color:white;
position:relative;
z-index:2;
}
.select{
display:block;
border-radius:100%;
width:40px;
height:40px;
background:black;
//opacity:0.6;
//transition:transform 300ms ease-in-out;
position:absolute;
z-index:3;
top:15px;
left:0px;
pointer-events:none;
}
JavaScript
jquery.jsを外部ファイルとし、以下のスクリプトを記述します。
$(document).ready(function(){
$(".dot").hover(function(){
var cur=$(this);
var dest=cur.position().left;
var t=0.6;
TweenMax.to($(".select"),t,{x:dest,ease:Back.easeOut})
});
var lastPos=$(".select").position().left;
function updateScale(){
var pos=$(".select").position().left;
var speed=Math.abs(pos-lastPos);
var d=44;
var offset=-20;
var hd=d/2;
var scale=(offset+pos)%d;
if(scale>hd){
scale=hd-(scale-hd);
}
scale=1-((scale/hd)*0.35);
TweenMax.to($(".select"),0.1,{scaleY:scale,scaleX:1+(speed*0.06)})
lastPos=pos;
requestAnimationFrame(updateScale);
}
requestAnimationFrame(updateScale);
$(".dot:eq(0)").trigger("mouseover");
})
sponsors











