• 締切済み

javascriptでポインタを画像の上にのせると左の画像が変わるやり方

http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1169&a=1 ドスパラのHPみたいにポインタを画像の上にのせると左の画像が変わるjavascriptのサンプルがあったら教えていただけないでしょうか。 よろしくお願いします。

  • HTML
  • 回答数5
  • ありがとう数3

みんなの回答

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

No.4です。修正します。前のサンプルだと、どこにマウスオーバーしても 画像が変わってしまうので、function eventadd()を直しました。 <script type="text/javascript" charset="utf-8"> <!-- window.onload = function () { imgset(); eventadd(); } function imgset(){ var lielm,targetelm; var imgsrc=new Array("/ff.jpg","/ff.jpg","/ff.jpg","/ff.jpg","/ff.jpg"); var targetelm=document.getElementById("gazou_r").getElementsByTagName("ul"); for (var i=0;i<imgsrc.length;i++){ lielm=document.createElement("li"); lielm.innerHTML='<img src="'+imgsrc[i]+'" alt="gazou" />'; targetelm[0].appendChild(lielm); } document.getElementById("gazou_l").setAttribute("src",targetelm[0].firstChild.firstChild.getAttribute("src")); } function eventadd(){ //@cc_on document./*@if( @_jscript ) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'mouseover', (function(evt){ var e = evt./*@if( @_jscript ) srcElement @else@*/ target /*@end@*/; if(e.nodeName=="IMG" && e.parentNode.parentNode.parentNode.id=="gazou_r"){ document.getElementById("gazou_l").setAttribute("src",e.getAttribute("src")); } }),false); } // --> </script> </head> <body> <div id="gazou"> <hr /> <div> <div id="gazou_r"> <ul></ul> </div> <img src="about:blank" id="gazou_l"> <div class="clear"><hr /></div> </div> <hr /> </div> </body> </html>

tongpoo-on
質問者

お礼

なるほど!ありがとうございます! ちょっとやってみます。 またよろしくお願いします。

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

javascriptのサンプルです。 (画像の配置はcssで調整しています。) こおいう感じで <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP"> <head> <title></title> <style type="text/css"> #gazou_r {float:right;width:50%;} #gazou_l {width:50%;} #gazou_r ul li { float:left; padding-left:10px; list-style:none; width:40%; } #gazou_r ul li img {width:100%;} .clear { clear:both; } .clear hr { display:none; } </style> <script type="text/javascript"> <!-- window.onload = function () { imgset(); eventadd(); } function imgset(){ var lielm,targetelm; var imgsrc=new Array("/ff.jpg","/ff.jpg","/ff.jpg","/ff.jpg","/ff.jpg"); var targetelm=document.getElementById("gazou_r").getElementsByTagName("ul"); for (var i=0;i<imgsrc.length;i++){ lielm=document.createElement("li"); lielm.innerHTML='<img src="'+imgsrc[i]+'" alt="gazou" />'; targetelm[0].appendChild(lielm); } } function eventadd(){ //@cc_on document./*@if( @_jscript ) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'mouseover', (function(evt){ var e = evt./*@if( @_jscript ) srcElement @else@*/ target /*@end@*/; document.getElementById("gazou_l").setAttribute("src",e.getAttribute("src")); }),false); } // --> </script> </head> <body> <hr /> <div> <div> <div id="gazou_r"> <ul></ul> </div> <img src="/ff.jpg" id="gazou_l"> <div class="clear"><hr /></div> </div> </div> <hr /> </body> </html>

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

#2様が詳しく解説なさっていますが、仕組みについての補足を… 小さな画像の部分はテーブルになっていて、それぞれのセル(<td>)は以下のような構造になっています。 <td> <a href="javascript:void(0)" onMouseOver="setimg('7')"> <img src="icon8.jpg" width="50" height="50" border="0" style="filter:alpha(opacity=50);" onMouseOver="this.filters['alpha'].opacity=100" onMouseOut="this.filters['alpha'].opacity=50"> </a> </td> 「onmouseover」がマウスを乗せたときのイベントハンドラを示していて、<a>タグにオンマウスすると、setimg()というファンクションが呼び出されます。 setimg()は引数(↑例では7番)で渡された画像を拡大表示のスペースに表示する機能を持っているという仕組みになっています。 もう一つ、<a>タグの中の<img>にもonmouseoverとonmouseoutのイベントが設定されています。 こちらは、丁度、画像のロールオーバーなどと同じで、マウスオンのときに表示効果、マウスオフのときにもとに戻すという記述になっています。 ""内に直接スクリプトのコードが書かれていますが、画像の透明度を変えるように設定されていて、マウスオフで半透明、マウスオンでクリアに表示されるようになっています。 ただし、ここで使われているfilter効果はIE専用なので、対応していないブラウザだと何の変化も起きません。(エラーにはならないらしい←未確認)

tongpoo-on
質問者

お礼

ありがとうございます。 HTMLやCSSは分かるのですが、javascriptはあんまり分かりません…。 やってみますね。 お手数おかけして申し訳ありません。

  • dell_OK
  • ベストアンサー率13% (740/5646)
回答No.2

サンプルをご所望のようですが、これはこのままドスパラのホームページを参考にされた方が早いのではないでしょうか。 とは言っても、ドスパラのホームページのソースをいきなり見てもどこで何をやっているのかすぐに見つける事はできないかも知れませんので、私がよくやっているソースの参考方法をお知らせします。ちなみに以下の手順は Internet Explorer 8 によるものです。 1.イベントが発生している画像のファイル名を調べる。 今回ので言うと、右側にあるいくつかの画像ですが、ポインタをのせると反応している画像ですね。この画像のどれかを右クリックして「名前を付けて画像を保存」を選択します。実際に保存はしなくてもいいのですが、保存しようとしてファイル名の入力ダイアログが出て、その画像のファイル名が初期値で表示されると思いますので覚えておきます。クリップボードなどに記憶させたら、キャンセルボタンで戻ります。 ここでは「icon1.jpg」が取得できました。 2.ソース上から1の画像ファイル名を検索する。 ホームページ上の何もないところを右クリックして「ソースの表示」を選択します。設定されているテキストエディタなどでソースが確認できるようになります。そのエディタ上で先ほど覚えたファイル名を検索します。 ここでは「icon1」を検索すると以下の部分が見つかりました。 <img src="/5goods_pc/img/note_pic/galleria_gs/icon1.jpg" 3.イベントで何をしているか調べて、処理を追う。 2で見つけた付近に、これに関係したイベントがあります。直前の <a> タグです。 <a href="javascript:void(0)" onMouseOver="setimg('0')"> ここでは、マウスポインタがのった時に「setimg」が呼ばれています。 次に「setimg」を検索してみますと、以下の部分が見つかります。 function setimg(n) { document.images['TOP_IMG'].src = img[n]; } おもむろに画像を変更している処理ですね。 TOP_IMG が何なのか検索してみると、配置位置的に画像が変わっている左の画像のようですので、この処理と見て間違いないでしょう。 では img[n] が何なのかを検索します。 と言ってもエディタで検索しても、うまく見つかりません。 ちょちょっとソースをながめて見ると、すぐ上で img を定義している部分がありました。 img = new Array( img1_path, img2_path, img3_path, img4_path, img5_path, img6_path, img7_path, img8_path ); ふむふむ。 で img1_path はと言うと、さらにすぐ上でなんだりかんだり定義していますが、どうも変化する画像ファイルのパスのようですので、これと見て間違いないでしょう。 今回は、これだけの手続きで、画像の差し替えがされているようです。 以上が、私の参考方法です。 これらの一連の流れを参考にされたら、これがひとつのサンプルになるのではないでしょうか。 今回参考にしたドスパラのホームページでは、とてもわかりやすい記述で JavaScript がコーディングされていましたので楽でしたが、場合によっては、このような参考にされるのをさけるためか、とても解読困難なホームページもあります。 それでも、特別な場合を除き、追跡して追跡できないわけでもないと思いますので、真似したいホームページがあればどんどん追跡してみてください。 それから。 ポインタがのった時に自分自身の画像も変化していますが、これについてはよく見ていません。何か少々面倒な事をしているような感じがしています。 こちらの動作も必要でしたら、質問者様の方で研究してみてください。

tongpoo-on
質問者

お礼

ありがとうございます。 日ごろHPを見てて「いいな」と思うjavascriptはたくさん ありますので、このようにサンプルを作っていけばいいんですね。 とても参考になりました。 お手数おかけしました。

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

他の回答者が解答しやすいように、条件を明確に 下のHTMLでCSSとJavascriptを使って、実現せよとか <body> <div> <div class="left"> <img src="abouit:blank" /> <div class="rigth"> <ul> <li><img src="img1.jpg"></li> <li><img src="img1.jpg"></li> <li><img src="img1.jpg"></li> <li><img src="img1.jpg"></li> </ul> </div> </body>

関連するQ&A

  • ドスパラのゲームパソコンについて

    ドスパラのゲームパソコンについて ドスパラのゲームパソコンを購入しようと思うのですが、 http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1347&map=1 と、 http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1493 ではどちらが性能がよいですか? 値段は一緒なのですが・・・・・・・ 回答よろしくお願いいたします。

  • ドスパラのパソコンで迷ってます

    ドスパラのパソコンでどちらがいいか困っています。 Prime Note Galleria MV http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=905&map= Prime Note Galleria MR http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1053&map=8_1 私は特にゲームや動画編集などします。どちらがそれらに強く、動作が速いでしょうか?お金とか関係なしにお願いします。 よろしくお願いします

  • ディスプレイモニターについて

    ディスプレイモニターについて ドスパラで http://www.dospara.co.jp/5goods_parts/parts_detail.php?h=d&f=d&m=parts2&ic=155918&lf=0 と http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1346&map=1 を注文したのですが、もしかしてこの2つ接続できないですか?;; もしできないのならいそいで注文取り消しするので回答よろしくお願いいたします!!!

  • BTOについて

    パソコンを購入しようと考えています。初心者なりに勉強してドスパラで買おうと思いました。ですがネットでいろいろと見ていたら排熱関係 と電源が心配?見たいなことが書いてありました しかもマザーボードも安物でと書いていてドスパラで買わないほうがいいと言う書き込みをみたんですけど 主にオンゲ、動画、音楽、スカイプ等をしようと思っています 予算はモニタを合わせて20万です ドスパラで購入を考えていたのはこちらです http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=883&a=1 これか http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=884&map=1 これです ドスパラ以外でURLと同じくらいの高スペがあってサポートも安心のショップはありますか? あとこのショップのこの商品を買えばいいですよってのも教えてください(よくわからない文ですいません) 別にドスパラでも大丈夫という人はいますか? ちょっとよくわからない文ですいません よろしくお願いします

  • ゲーム用PCのディスプレイを買いたいんですが・・・

    ドスパラで、ゲーム用パソコンを買う予定なんですが、 http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=772←これです。 ディスプレイは選んだことがなくどれがいいのかよくわかりません。 とりあえず、ドスパラのお勧めディスプレイで、 http://www.dospara.co.jp/5goods_parts/parts_list.php?op=50&sbr=324&h=d&f=d&m=parts&lf=0 その中から選らんでみたのがこれです。 http://www.dospara.co.jp/5goods_parts/parts_detail.php?h=d&f=d&m=parts&ic=90001&lf=0 パソコンに関して詳しくないので、相性とかもわからず選びました。 お勧めのがあれば教えてもらえると嬉しいです。 予算は2万前後で考えてます。 お願いします^^

  • カスタムメイドPC(ドスパラ)について

    カスタムメイドPCを買おうと思っているのですが、 ドスパラというサイトにて調べていたところ、 同じマザーボードでも種類によって選べるCPUが異なります。 これはなぜなのでしょうか? ドスパラさんが決めてるのですか? http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=885&map=1 上記PCはマザーボード「Intel P45 Express チップセット ATXマザーボード」ですが、QuadCoreは選択不可。 http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=728 上記PCは同じマザーボードだけど、Core2もQuadCoreも選択可能。 違いを知りたく投稿しました。

  • BTOパソコン

    ドスパラでBTOパソコンの購入を考えています。 そこで質問なのですが、 Prime Galleria JD http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=765 Prime A Galleria AG http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=867&map=5 カスタマイズなしではどちらのほうが高性能ですか? 主な用途はゲーム、ニコニコ動画での動画再生、動画のエンコードです。 教えてください。

  • オブリビオンはこれらのPCで動きますか?

    タイトルの通りです。 これらのPCで動くんでしょうか? http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=765&map=1#to_3 http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=d&f=d&m=pc&mc=949&a=1 お願いします。

  • Galleria ZX 水冷モデル について

    ドスパラで、「Galleria ZX 水冷モデル 」が登場しました!! 参考↓ http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=955&map=1 購入したいと思っているのですが、皆様的にはどうでしょうか? 「買い!」でしょうか?感想をお聞かせ下さい

  • PCを新調しようと思うのですが二つで迷っています。それぞれのメリットと

    PCを新調しようと思うのですが二つで迷っています。それぞれのメリットとデメリットをおしえてもらえないでしょうか? ドスパラでカスタマイズして買おうと思うんですが以下の二つで迷っています; http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1481&lf=0 http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1531&lf=0 電源は二つとも オウルテック EVEREST85PLUS720 (720W 静音電源 / 80PLUS BRONZE) 【 +12,200 円 】 にしようと思っています。 ほかのカスタマイズもすると一万三千円くらいの差になるのですが迷っているので どっちの方がおすすめか教えてもらえると助かります。 自分が調べたのではマザーボードの性能が 結構違うみたいなんですが良く分からなかったです。 使用用途はゲームや絵を描いたりプログラミングです。 回答よろしくお願いします。

専門家に質問してみよう