Movable Type 備忘録

 BackgroundPosition with jQuery

  • Nov242008
  • Vote:
    http://bizcaz.com/archives/2008/11/24-220941.php
  • Categories: jQuery
  • Tags:
  • Social Bookmark

こんばんわ^^

だいぶ前( たしか夏ぐらい )にどっかでご紹介されてた jQuery のプラグインを試したもののすっかり忘れてて、その頃すっごく忙しかったので記事も中途半端に書きっぱなしで放置してたものがありまして、今さら感たっぷりな気持ちでいっぱいなのですが、一応記事もちゃんと書き直して公開しちゃいます (; ̄∇ ̄A

Background-Position Animations プラグインを使ったスクリプトです。

サンプルを表示できませんでした。

こちらのプラグインは、作ったイメージのデザインによってまったく違った見え方になるのでおもしろいなっと思ったスクリプトです。
BackgroundPosition プラグインは以下のページから入手できます。

上記サンプルは以下のサイトさんを元に作ったものです。

使い方

使い方はカンタンです。マークアップは以下のようにシンプルです。

BackgroundPosition のマークアップ

  1. <div class="box clear">
  2.     <ul id="bgp1">
  3.         <li><a href="#">●●●</a></li>
  4.         <li><a href="#">▲▲▲</a></li>
  5.         <li><a href="#">■■■</a></li>
  6.     </ul>
  7. </div>

普通にリストにするだけです。
また、CSS も重要で配布元でご紹介してる必須な CSS は以下の通りです。

スタイルシート

  1. ul {
  2.     list-style:none;
  3.     margin:0;
  4.     padding:0;
  5. }
  6. li {
  7. float:left;
  8.     width:100px;
  9.     margin:0;
  10.     padding:0;
  11.     text-align:center;
  12. }
  13. li a {
  14.     display:block;
  15.     padding:5px 10px;
  16.     height:100%;
  17.     color:#FFF;/*各自の背景色に合わせる*/
  18.     text-decoration:none;
  19.     border-right:1px solid #FFF;/*各自の背景色に合わせる*/
  20. }
  21. li a {
  22.     background:url(bg.jpg) repeat 0 0;/*アニメーションさせる背景*/
  23. }
  24. li a:hover {
  25.     background-position:50px 0;
  26. }

青字で分かるように float による回り込みを行ってます。 ですので、最後は必ず clear による回り込み解除を行う必要がありますのでご注意ください。

上記サンプルのコードは以下の通りです。

BackgroundPosition コード

  1. $(function(){
  2. $('#a a')
  3. .css( {backgroundPosition: "-20px 25px"} )
  4. .mouseover(function(){
  5. $(this).stop().animate({backgroundPosition:"(-20px 94px)"}, {duration:500})
  6. })
  7. .mouseout(function(){
  8. $(this).stop().animate({backgroundPosition:"(-20px 25px)"}, {duration:200, complete:function(){
  9. $(this).css({backgroundPosition: "-20px 25px"})
  10. }})
  11. })
  12. $('#b a')
  13. .css( {backgroundPosition: "0 0"} )
  14. .mouseover(function(){
  15. $(this).stop().animate({backgroundPosition:"(0 -60px)"}, {duration:500})
  16. })
  17. .mouseout(function(){
  18. $(this).stop().animate({backgroundPosition:"(60px 0)"}, {duration:200, complete:function(){
  19. $(this).css({backgroundPosition: "0 0"})
  20. }})
  21. })
  22. $('#c a')
  23. .css( {backgroundPosition: "0 0"} )
  24. .mouseover(function(){
  25. $(this).stop().animate({backgroundPosition:"(-150px 0)"}, {duration:500})
  26. })
  27. .mouseout(function(){
  28. $(this).stop().animate({backgroundPosition:"(-300px 0)"}, {duration:200, complete:function(){
  29. $(this).css({backgroundPosition: "0 0"})
  30. }})
  31. })
  32. $('#d a')
  33. .css( {backgroundPosition: "0 0"} )
  34. .mouseover(function(){
  35. $(this).stop().animate({backgroundPosition:"(0 -250px)"}, {duration:500})
  36. })
  37. .mouseout(function(){
  38. $(this).stop().animate({backgroundPosition:"(0 0)"}, {duration:500})
  39. })
  40. });

青字が Top down( 上から下へ )のスクリプトになります。
赤字が Bottom up( 下から上へ )のスクリプトで、緑字が Right left( 右から左へ )のスクリプトです。
そして、黄字がフェード( 厳密には下から上へ )させたスクリプトになります。

基本的には mouseover でマウスオーバー時のアニメーション停止位置( イメージの表示位置 )を指定して、

マウスオーバー時のアニメーション

  1. .mouseover(function(){
  2.     $(this).stop().animate({backgroundPosition:"(-20px 94px)"}, {duration:500})
  3. })

mouseout でマウスアウト時のアニメーション停止位置( イメージの表示位置 )を指定するだけです。

マウスアウト時のアニメーション

  1. .mouseout(function(){
  2.     $(this).stop().animate({backgroundPosition:"(-20px 25px)"}, {duration:200, complete:function(){
  3.     $(this).css({backgroundPosition: "-20px 25px"})
  4. }})

duration はアニメーション速度を指定します。大きい値ほどゆっくり表示されます。

以上です。
この Background-Position Animations プラグインを使ったアニメーションは割りといろんなサイトさんでご紹介されてます。
背景イメージのデザインや、イメージのポジション( X 座標、Y 座標 )によっていろんな見せ方ができるので楽しいかもです。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

 

コメント用フィード