jQueryのanimateを使うことで、要素を横に動かしたり縦に動かしたりとアニメーションさせることができます。
また、jQuery Easing Pluginと併用することで、エフェクト付きの面白いアニメーションも実装することができますので、サイトの見せ方にひと工夫加えたい場合などには効果的だと思います。
オブジェクトを縦横方向に移動させる
基本のCSSとHTMLを用意
CSSとHTML側の記述はこんな感じで用意します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<style> .contents { position:relative; } #box { position:absolute; left:0; top:0; width:100px; height:100px; background:#dd0000; } </style> <div id="contents"> <div id="box"></div> </div> |
これをベースに、jQueryのanimateを利用してオブジェクト(#box)を右へ下へと動かしていこうと思います。
オブジェクトを「右」方向に動かす
まずはオブジェクトを右方向に動かしてみますので、以下のようにleftで動かしたい距離を指定します。
1 2 3 4 5 6 7 8 9 |
<script src="./jquery.min.js"></script> <script type="text/javascript"> $(".contents").ready(function(){ $('#box').animate( {'left':'600px'}, {duration: 3000} ); }); </script> |
この場合、右へ動く要素の到達地点は「左から600px動いた所」になります。
またオプションとして、durationで速度を調整することも可能です。
上記例はreadyイベントにより、ページを開くと#box要素の四角形が右へ600px(の位置へ)移動します。
オブジェクトを「右」方向に動かすデモ
オブジェクトを「下」方向に動かす
今度は「下」方向に動かしますので、topで動かしたい距離を指定します。
1 2 3 4 5 6 7 8 9 |
<script src="./jquery.min.js"></script> <script type="text/javascript"> $(".contents").ready(function(){ $('#box').animate( {'top':'300px'}, {duration: 3000} ); }); </script> |
先の例と同様、移動する要素の到達地点は「上から300px動いた所」になります。
ページを開くと#box要素の四角形が下へ300px移動します。
オブジェクトを「下」方向に動かすデモ
オブジェクトを「右下」に動かす
もちろん右下のような移動も可能で、その場合は以下のような設定なります。
1 2 3 4 5 6 7 8 9 |
<script src="./jquery.min.js"></script> <script type="text/javascript"> $(".contents").ready(function(){ $('#box').animate( {'top':'300px','left':'600px'}, {duration: 3000} ); }); </script> |
#box要素の四角形が右へ600px、下へ300pxの位置へと「斜め方向」に移動します。
オブジェクトを「右下」に動かすデモ
ボタンクリックによるアニメーション
上記までの例は、デモページを開くとアニメ−ションが起こりますが、こちらは「ボタンをクリック」してアニメーションを起こすサンプルです。
1 2 3 4 5 6 7 8 9 10 11 |
<script src="./jquery.min.js"></script> <script type="text/javascript"> $(function(){ $("#button01").click(function(){ $('#box').animate( {'top':'300px','left':'600px'}, {duration: 3000} ); }); }); </script> |
CSS と HTMLのサンプル
button01の「クリックしてアニメーション」ボタンをクリックすることで、#box要素が右下の方向へと動きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<style> .contents { position:relative; } #box { position:absolute; top:0; left:0; width:100px; height:100px; background:#dd0000 } .button { text-align:center; margin:0 auto } </style> <div class="contents"> <div dv id="box"></div> </div> <div class="button"> <input type="button" id="button01" value="クリックしてアニメーション"> </div> |
clickイベントで、要素を右方向に動かすサンプルです。
click イベントのアニメーションデモ
jQuery Easing Plugin を使ってエフェクトを付与
最後に、エフェクトを加えるためにjQuery Easing Pluginを利用してみます。jQuery Easing Plugin のダウンロード
以下のページより jQuery Easing Pluginファイルをダウンロードします。jQuery Easing Plugin
jquery.easing.1.3.js の設置
jQueryファイルと一緒にjquery.easing.1.3.jsを設置します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<script src="./jquery.min.js"></script> <script src="./jquery.easing.1.3.js"></script> <script type="text/javascript"> $(function(){ $("#button01").click(function(){ $('#box').animate( {'top':'300px','left':'600px'}, 'slow', 'easeOutBounce' ); }); }); </script> |
今回は動きが分かりやすいようにeaseOutBounceを使っています。
clickイベントで、#box要素の四角形が「エフェクト付き」で、右へ600px、下へ300pxの位置へと斜め方向に移動します。
jquery.easie.js によるエフェクト のデモ
コメント