カーソルを合わせると画像がふわふわと上下に動く方法

このQ&Aのポイント
  • カーソルを合わせると画像がふわふわと上下に動く方法について教えてください。
  • Pioneerのホームページ内に、リンクの中のpng画像のみがカーソルを合わせるとふわふわと上下に動く部分があります。
  • 不思議に思ってfirebugで確認したところ、動いているときはstyle属性のtop値が自動的に変動しているようです。なぜこのような動きをしているのかわかりません。
回答を見る
  • ベストアンサー

カーソルを合わせると画像がふわふわと上下に動きます。どのようにして実現

カーソルを合わせると画像がふわふわと上下に動きます。どのようにして実現しているのでしょうか? Pioneerのホームページ内に、リンクの中のpng画像のみがカーソルを合わせるとふわふわと上下に動く部分があり、不思議に思ってfirebugで見てみたところ、動いているときは[style="top: 108px;"]←この数値が勝手に変動しています。 (http://pioneer.jp/ipod_sys/index.html ←※FLASHの下の3つスピーカーが並んでいる部分です。) 簡単なコーディングができる程度のCSSの知識はあるのですが、なぜこのような動きをしているのか全くわかりません。 参考URLでも構いませんので、教えていただけるとうれしいです。 よろしくお願い致します。

  • CSS
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

そのページでは、javascriptで、スタイル属性を変更して実現してます。 firebugお使いならば、<script>の中身も見れます。 ここでは、jQueryというjavascriptのライブラリーを使って、 スタイルの変更や、視覚効果を簡便に実行しています。 <script type="text/javascript" src="common/js/jquery.js"></script> がライブラリーです。(これはjQueryのサイトからダウンロード出来ます。) 作者のコーディングされた部分は <script type="text/javascript" src="common/js/common.js"></script> です。 マウスオーバーでふわふわを実現させてる部分は、この中の   $("#idxNavi li a").hover(    function () {     var index = $("#idxNavi li a").index($(this));     if (!$.browser.msie || $.browser.version >= 7)     {      $(this).next().animate(       {top:'95px'},       {duration: 280, easing: "linear",       complete: function(){}      });      $(this).next().next().fadeOut("slow");      $(this).next().next().next().fadeIn("slow");     }     $(this).children(".btnOver").show();     $(this).children(".btnDef").hide();    },    function () {     var index = $("#idxNavi li a").index($(this));     if (!$.browser.msie || $.browser.version >= 7)     {      $(this).next().animate(       {top:'108px'},       {duration: "slow", easing: "linear",       complete: function(){ }      });      $(this).next().next().next().fadeOut(450);      $(this).next().next().fadeIn(450);     }     $(this).children(".btnOver").hide();     $(this).children(".btnDef").show();    }   ); 部分です。CSSおわかりなら、セレクター指定が解るので、なんとなくやってる 事が推測できませんか、 fadeOut、fadeIn、hide()、show()とかduration: 280, easing: "linear" みたいな見慣れない属性は、jQuryが提供している機能です。 参考(jQuery) http://semooh.jp/jquery/

jazzzzz
質問者

お礼

プログラムの内容まで書いてくださってありがとうございます。 jQueryというのはごくごく簡単なものを一度だけ使った事はありましたが、このような事もできるのですね! ホームページ上で動くもの=FlashかGIFアニメ!と決め付けていました。。 jQueryはこれから勉強していきたいと思っているので、参考のURLも活用さしてもらいます♪ また、firebugで<script>が見れることも知りませんでした。 大変勉強になります!ありがとうございますm(_ _)m

その他の回答 (1)

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.1

以下、製品と大きい影と小さい影を用意して http://pioneer.jp/ipod_sys/images/idxNAS50Pic.png http://pioneer.jp/ipod_sys/images/idxNAS50Shade.gif http://pioneer.jp/ipod_sys/images/idxNAS50Shade_over.gif 上記画像+1(周りの文字画像)を重ねて マウスカーソルが指定されたエリア内(周りの文字画像内)に入ったら JavaScriptで製品画像をスタイルシート要素のTopマージンを変化させて上に少しずつずらし(Topのマージンを95から108の間で増減) JavaScriptで大きい影をフェードアウトしながら小さい影をフェードイン マウスカーソルが指定されたエリア外に出たら その逆 jQueryを使って上記処理を「common.js」に組み込んでいます jQuery フェードイン フェードアウト で検索してください。

jazzzzz
質問者

お礼

ご回答ありがとうございます。 それぞれ製品と影の画像が使われているところまでは理解できていたのですが、jQueryを使うと画像のフェードイン・フェードアウト・動かすことが出来るのですね~! 勉強になりました!ありがとうございますm(_ _)m

関連するQ&A

  • 画像の横に1/2の高さの画像を2枚上下で並べて配置

    HTML初心者です。 1枚の画像の横に、1/2の高さの画像を2枚上下で並べて配置する方法はありますか? <!-- 画像を括るボックスのwidth値は画像サイズの単位である px を指定する --> <p style="width: 100px; padding: 10px;"><img width="100" height="100" src="./test.png></p> 他のサイトで上記がHITしたのですが。。 スタイルシート(?)ではなく、HTMLで出来るのであれば知りたいです。 すみませんが、ご確認よろしくお願いします。

    • ベストアンサー
    • HTML
  • HPの作成について質問です。cssを用いてある画像にカーソルを合わせる

    HPの作成について質問です。cssを用いてある画像にカーソルを合わせると、別の画像が現れるという効果をつけたいと思っています。下記のような(該当部分と思われるところ)htmlとcssを作成したのですが、画像の1の部分だけがカーソルにあわせた画像が繰り返された画像となります。また画像の2の部分が画像にカーソルを合わせるとなぜか消えてしまいます。アドバイスお願いします。 *HTML <div id="naraberu"> <ul> <li class="Qone-one"><a href="kikimashita1.html"></a></li> (省略) <li class="Qone-twelve"><a href="kikimashita1.html"></a></li> <li class="Qone-thirteen"><a href="kikimashita1.html"></a></li> <li class="Qone-fourteen"><a href="kikimashita1.html"></a></li> <li class="Qone-fiveteen"><a href="kikimashita1.html"></a></li> <li class="Qone-sixteen"><a href="kikimashita1.html"></a></li> <li class="Qone-seventeen"><a href="kikimashita1.html"></a></li> <li class="Qone-eighteen"><a href="kikimashita1.html"></a></li> <li class="Qone-nineteen"><a href="kikimashita1.html"></a></li> <li class="Qone-twenty"><a href="kikimashita1.html"></a></li> <li class="Qone-twentyone"><a href="kikimashita1.html"></a></li> </ul> <!--end div#naraberu--> </div> *CSS #naraberu { position: relative; margin-top: 10px; margin-left: 20px; width: 400px; height: 1000px; } #naraberu a{ display:block; width:64px; height:79px; } #naraberu a:hover{ position: absolute; left: 380px; top: 90px; display:block; width:210px; height:278px; } (省略) .Qone-fourteen a { background-image: url(../images/card_moto.png); } .Qone-fourteen a:hover { background-image: url(../images/card_example.png); } .Qone-fiveteen a { background-image: url(../images/card_moto.png); } .Qone-fiveteen a:hover { background-image: url(../images/card_example.png); } .Qone-sixteen a { background-image: url(../images/card_moto.png); } .Qone-sixtten a:hover { background-image: url(../images/card_example.png); } (省略) .Qone-nineteen a { background-image: url(../images/card_moto.png); } .Qone-nineteen a:hover { background-image: url(../images/card_example.png); } .Qone-twenty a { background-image: url(../images/card_moto.png); } .Qone-twentyone a:hover { background-image: url(../images/card_example.png); }

    • ベストアンサー
    • HTML
  • blogのwrapperの上下に余白が10pxほど空いていますが、つめるにはどうしたらいいでしょうか?

    wordpressを使用してブログを作成していますが、wrapperの上下の部分に、10pxほど余白ができてしまっています。 IE5 IE6 FireFoxのいずれでも、余白があるのですが、この余白をつめるには、どうしたらいいのでしょうか? cssの定義は以下の通りなのですが、これは、cssでは、余白を埋めることはできないのでしょうか? .wrapper { background: url(images/wrapper.png) repeat-y; position:relative; width:1000px; margin:0px auto 0px auto;

    • ベストアンサー
    • HTML
  • PNG画像の余白をカットする方法はありませんか?

    動的に出力した図(PHP+JpGraphによるPNG画像)が,1pxの黒いボーダーで 囲まれているのですが,これを除去にするのに,何かアイデアない でしょうか.JpGraphにそういう設定項目があれば一番よいのですが. 上下左右のマージン1pxをトリミング(除去)するとか, 上下左右のマージン1pxを背景色(白)に塗りつぶす, …なんてことができると一番良いです. 手段は何でもよいです.CSSのフィルタとか,いろいろ可能性はあるかもしれませんが.

    • 締切済み
    • PHP
  • 画像のセンターリングについて

    真ん中にはなるのですが、IEで見るとwidth900pxにしているのに940pxになったり、firefoxで見るとスクロールすると上下に背景ではなくて画像が動いてしまいます。どうやって治したらいいでしょうか? html <div id="content"><img src="img/bacttrast.png" alt="aa" /></div> css #content{ padding: 40px; width: 900px; height:790px; margin: 0 auto; }

  • 添付のように背景に画像を張るとき上下の画像を別に切り出して、背景画像と

    添付のように背景に画像を張るとき上下の画像を別に切り出して、背景画像としてCSSでレイアウトしたいのですが、うまくいきません。 background-position の設定をするのだということはわかるのですが、 赤枠でくくった部分の2枚の画像をそれぞれ上下に指定するにはどうしたらよいでしょうか? どうも今書いているソースではうまくいきませんどなたか回答お願いします。

  • XHTML+CSS 画像を中心(上下の)に配置したい

    基本部分と思うのですが、下記の記述でどうしても中心にならず、躓いております。 「中心にしたい画像」を800pxの枠内の中央(上下)に置きたい為、 上下の余白を19pxとっているのですが、画像が下寄りになってしまいます。 動作確認はMac:safari3.0 Fire Fox2.0 です。 どなたか教えて下さい。よろしくお願い致します。 ------------------------- 【HTML】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>test</title> <style type="text/css" media="all"> <!-- @import url("test.css"); --> </style> </head> <body> <div id="navi"> <h2><img src="中心にしたい画像" width="200" height="12"></h2> <h2><img src="中心にしたい画像" width="200" height="12"></h2> <h2><img src="中心にしたい画像" width="200" height="12"></h2> </div> </body> </html> ------------------------- 【CSS】 body { margin: 0px; padding: 0px; } #navi { margin: 0px; padding: 0px; height: 50px; width: 800px; border: 3px dotted #333333; } #navi h2 { padding: 19px 30px 19px 0px; margin: 0px; float: left; }

    • ベストアンサー
    • HTML
  • メニューボタン(リンク入り)に画像を使っていますが、マウスポインタを乗

    メニューボタン(リンク入り)に画像を使っていますが、マウスポインタを乗せた時に(今ここを選択していることが分かるように)色が変化したり、枠が付いたりするようにしたいと考えています。 いろいろ調べてみたのですが、1つの方法として次のように書けばいいようです。 (CSS) a{ display:block; width:50px; height:50px; background:url(img_02.png) no-repeat 0px 0px; } a:hover img{ filter: alpha(opacity=0); -ms-filter: alpha(opacity=0); opacity: 0.0; } (HTML) <a href="#"><img src="img_01.png"></a> しかし、全く変化ありませんでした。 GIF画像を使っているのですが、これをPNG形式の画像に変更して(CSS)のbackground:url(img_02.png) no-repeat 0px 0px;の中の「img_02」の部分を変更すればいいのでしょうか? それとも「02」の部分だけ変更すればいいのでしょうか? (HTML)も同様に「img_01」なのか「01」の部分だけなのか? また、(CSS)にあるdisplay:block; width:50px; height:50px; は書く必要があるのでしょうか? 画像を使っているのでわざわざ書く必要がないとも思うのですが・・・。 何が間違っているのか分かりませんので、お気づきの点や、その他に良い方法がありましたら教えてください。 どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • wordpressのトップスライドの・・・

    高さを今500pxに指定しているのですが現状は306pxにテーマの設定で切られた画像を無理矢理500pxに伸ばしている状態になっています。 自分でfirebugで色々中身を調べたのですがアイキャッチ部分のサイズが指定されているか、classのattachment-ytterbiumoid-gallery wp-post-imageって部分で指定されているのかなと思いcssを探したのですがどこのcssにも記載がありませんでした。 どこをどうすれば500pxの画像をはめる事ができますでしょうか? 宜しくお願い致します。 サイト:http://snapkidz.biz/wp/

    • ベストアンサー
    • CSS
  • CSS、JavaScriptで、「でっかいカーソル」

    WEBページにてマウスカーソルを80×80pxくらいの画像にしたいと思っております。 CSSのマウスカーソル変更を調べたところ、cursorで指定できる.curファイルは、なにやらサイズが32x32までの大きさとのこと。 他の方法(JavaScriptなど)で、マウスカーソルを指定の画像に変えることができる方法はありませんでしょうか。 #ジャストアイデアとして、1ドットのcurファイルを作り、そのマウスカーソルにJavascriptで画像をぴったり追従させることも考えていますが(未検証)、よりスマートな方法はないかと思案中です。 よろしくお願いします。

    • ベストアンサー
    • CSS

専門家に質問してみよう