jQuery:画像一つでもロールオーバー効果

メニューの数が多いサイトで、そのメニューすべてにロールオーバー効果を仕込もうとするとメニューの数だけロールオーバー用の画像を作成しプリロードしなければならないですよね。先日手がけたサイトではトップページだけでもメニュー含めロールオーバー部分がが30個以上あって大変でした。

マウスオーバー時に画像が変わる場合はやっぱりそれだけ用意しなければなりませんが、例えばマウスオーバー時に濃くなるという仕様であればこの方法がなかなか使えたのでメモ。

用意するものはjQuery本体と画像一つ。スクリプトは下記のようになります。

<script type="text/javascript">
function FlashBlock() {
/*ページ読み込み時に画像の透明度を50%にする*/
$(".FlashBlock").fadeTo(100, 0.5);
/*マウスオーバー・アウト時の処理*/
$(".FlashBlock").hover(
/*マウスオーバー時 100%に*/
    function(){$(this).fadeTo(100, 1);return false;},
/*マウスアウト時 50%に*/
    function(){$(this).fadeTo(100, 0.5);return false;}
  );
}
$(FlashBlock);
</script>

 あとは画像のimgタグにclass="FlashBlock"を仕込むだけです。


fadeTo(XXX,YYY)のYYYは透明度です。XXXはフェードの時間(ミリ秒単位)です。

たとえばマウスオーバー時に1.5秒かけて30%の透明度へフェードさせる場合は下記のようになります。

<script type="text/javascript">
function FlashBlock2() {
/*マウスオーバー・アウト時の処理*/
$(".FlashBlock2").hover(
/*マウスオーバー時 1.5秒かけて30%に*/
    function(){$(this).fadeTo(1500, 0.3);return false;},
/*マウスアウト時 100%に*/
    function(){$(this).fadeTo(100, 1);return false;}
  );
}
$(FlashBlock2);
</script>

トラックバック


URL から "-nospam" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。

コメント

新しいコメントの投稿

このフィールドの内容は非公開にされ、公表されることはありません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • 行と段落は自動的に折り返されます。

書式オプションに関するより詳しい情報...

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
1番目 のワードを "ひらがな" で入力してください。
答えとなるワードのひらがな/カタカナに関わらず、すべてひらがなで入力してください。
コンテンツ配信
^ Page Top
(c) potchin