• ベストアンサー

リンクにマウスを重ねた際、テキストリンクと画像を同時に変更する方法などが分からず困っています

abrilの回答

  • abril
  • ベストアンサー率69% (388/560)
回答No.10

> 今回行いたいのはナビリンクとなります。 > 下記のようなナビリンクがあった際、枠内はすべてリンク領域にしたい ああ…そういう事ですか。最初の質問の内容からして、リンク集の様なものをイメージされているのかと思いましたので。 であれば、考え方がまた変わってきます。「画像+テキストのナビリンク」という事であれば、その数はさほど沢山ではない、と考えても宜しいでしょうか?つまり、せいぜい多くても10個程度が想定される、という事ですが。 もしそれで構わないのであれば、多少記述が増えますが、CSSだけでお望みを叶える事が可能となります。以下はその仮定に基づいたサンプルです。 ここではナビリンクが3つ、それぞれで表示される画像のセットは以下とした場合です(後者がマウスオーバー時の画像)。 navi01_off.jpg/navi01_on.jpg (W100px/H20px) navi02_off.jpg/navi02_on.jpg (W110px/H30px) navi03_off.jpg/navi03_on.jpg (W120px/H40px) 【CSS】 ul.sample3 { width: 300px; list-style: none; padding: 0; margin: 0; } ul.sample3 li { padding: 0; margin: 0 0 5px 0; } ul.sample3 li a { display: block; background-position: left center; background-repeat: no-repeat; } ul.sample3 li a:hover { color:#3f6; background-color:#cff; } /* 以下、ナビリンクごとの個別指定 */ /* 通常 */ ul.sample3 li#NAVI01 a { min-height: 20px; _height: 20px; padding-left: 110px; background-image: url(images/navi01_off.jpg); } ul.sample3 li#NAVI02 a { min-height: 30px; _height: 30px; padding-left: 120px; background-image: url(images/navi02_off.jpg); } ul.sample3 li#NAVI03 a { min-height: 40px; _height: 40px; padding-left: 130px; background-image: url(images/navi03_off.jpg); } /* マウスオーバー時 */ ul.sample3 li#NAVI01 a:hover { background-image: url(images/navi01_on.jpg); } ul.sample3 li#NAVI02 a:hover { background-image: url(images/navi02_on.jpg); } ul.sample3 li#NAVI03 a:hover { background-image: url(images/navi03_on.jpg); } 【HTML】 (ナビ部分のみ抜粋) <ul class="sample3"> <li id="NAVI01"><a href="index.html">長いテキスト長い長い長い長い長い長い長い長いい長い長い長い長い長い長い長い長い</a></li> <li id="NAVI02"><a href="index.html">短いテキスト</a></li> <li id="NAVI03"><a href="index.html">長いテキスト長い長い長い長い長い長い長い長い長い</a></li> </ul> ナビ、ということであればリストタグ<ul>でのマークアップが望ましいので、マークアップを変更しています。<a>をブロック要素化してテキストと画像をひとつのリンクに含めるころまでは今までと同じですが、今回、画像部分を<img>でのマークアップではなく、<a>の背景画像としております。 背景画像とする事で: ・テキストが回り込む事がない ・画像とテキストの垂直方向の位置関係をセンタリングできる ・a:hoverを利用して、JavaScriptを使用せず画像をロールオーバーできる というメリットがあります。 逆に、以下の点について対応しなくてはならなくなります: ・画像の大きさがナビリンクごとに異なるので、アイテムごとにIdをふって個別指定が必要 ・背景画像自体は幅や高さを持たないので、幅と高さの値を個別にpxで指定しなければならない サンプルCSS中での、"min-height"の値が画像の高さです。それと併わせて"_height”に同じ値を指定しているのは、IE6ではmin-heightプロパティが無効の為、同様の効果を得られるheightプロパティをアンダースコア・ハックで使っています。幅は"padding-left"で指定していますが、それぞれの実際の画像の幅より10px多くすることで、テキストとの間に余白をとっています(この数値はお好みで)。そして、画像自体を"background-image"で指定し、ロールオーバー時の画像は更に"a:hover"のスタイルとして指定しています。 いかがでしょうか?ただし、前置きした様にこれはナビリンクの数だけ個別指定をしなければならないので、何十個もアイテムがある様な場合にはCSSの記述が膨大になってしまいますのでお奨めはしません。通常イメージするナビリンクの数でなら、HTML側は非常にすっきりしますし、CSSでの記述も(一括でまとめられるところはできるだけそうしてあるので)さほど煩雑にはならないと思いますので。

iroha_168
質問者

お礼

いつもお世話になっております。 今回教えていただいた記述を引き続き検証していた所、必ずしも下記は満たせていないようなのでご報告差し上げます。 > ・画像とテキストの垂直方向の位置関係をセンタリングできる 記載されているソースの下記は厳密にはセンタリングされていませんでした(画像の上の方に表示されます。IE6だと分かりにくいです。Firefox2だと分かりやすいです)。 <li id="NAVI02"><a href="index.html">短いテキスト</a></li> ただこの場所は画像の高さが小さい為、下記のようにNAVI03部分のテキストを短くしてみると分かりやすいと思います(IE6でも)。 【修正前】 <li id="NAVI03"><a href="index.html">長いテキスト長い長い長い長い長い長い長い長い長い</a></li> 【修正後】 <li id="NAVI03"><a href="index.html">短いテキスト</a></li> これは文章位置の縦のセンタリング自体はどこにも明示されていない為だと思います。 背景画像の高さは下記で指定されております(NAVI03の場合)。 min-height: 40px; _height: 40px; そして背景画像の表示位置は下記で指定されております。 background-position: left center; しかし、上記の条件だけでは「テキストの高さが画像サイズ以上になった場合のみ」、初めてセンタリングされるように思います (厳密にはテキストがセンタリングというより、テキストの縦中央に背景画像が表示されるものの、テキストの高さがmin-heightに満たない場合でもmin-height分の高さが確保されてしまう為、その際テキストは上の方に表示されてしまうと思います)。 その為、min-heightや_heightを削除すればテキストが短くてもセンタリングされます。 もっともこうすると画像が切れてしまうので、センタリングできても意味はないのですが。 中々cssで縦の中央あわせというのは難しいみたいですね。 それでは。

iroha_168
質問者

補足

ありがとうございます。 ソースを確認させていただきました。 試してみた感じ、私がここで記載させていただいた質問内容をすべて満たしていると思います。 それと > 「画像+テキストのナビリンク」という事であれば、その数はさほど沢山ではない、と考えても宜しいでしょうか?つまり、せいぜい多くても10個程度が想定される、という事ですが。 はい、そのとおりです。 多分10個前後だと思います。 ただ、これは「個別対応はできない」という事を明記していなかった私の言葉足らずが原因ですが、今回のソースはそのまま使えない事情があります。 その事情ですが、下記となります。 ・製造者(私)と運営者が分離しています。 ・一通り製造した後は、運営者のみで運営していく形を想定しています。 ・運営者は自由にナビリンクを追加、削除、変更する権限があります(ナビリンクの追加、削除はブラウザから行えます。ナビリンクの数が多分10個前後という曖昧な表現をさせていただいたのはここに起因します)。 ・運営者は自由にナビリンク用の画像を追加、削除、変更する権限があります(画像サイズが一定しないのはここに起因します)。 ・運営者はhtmlにさわりません。 その為、上記のような個別指定のソースを適用すると下記のような自体が想定されます。 ・運営者が、ある日ナビリンクを追加しても、それだけでは正常に動作しない(その都度、製造者(私)がCSSの記述の追加やhtmlにクラスを追加する必要がある)と思います。 ちなみに質問3の動作がリンク領域以外は要望を満たしていると発言させていただいた際は、個別対応をしなくて良い(運営者がナビリンク名と、ナビリンク画像を適用すれば、そのまま動作する)という点も内包しておりました。 もしかしたら「リンク集の様なもの」をご想像いただいていたみたいなので、たくさんのリンクがあり、左側にバナー画像、右側にテキストが書いてあり、バナー画像は各サイトでバラバラの為、個別対応は難しいと思っていただいていたのであれば、結果として私の思っていた事(個別対応で出来ない)と同じだったのかもしれません。 ともあれ、個別対応すれば動作することがわかり助かりました。 今回はそのまま使用することは出来ないと思いますが、今後製造者レベルで完結できる箇所で上記のような動作を希望する際は参考にさせていただきたいと思います。 どうもありがとうございました。 以上、よろしくお願いします。 ※なお文字数制限の関係上、「この回答へのお礼」ではなく、「この回答への補足」に投稿させていただきました。

関連するQ&A

  • リモートロールオーバーで画像と一緒にテキストも切り替える方法

    初投稿です。 当方ジャバスクリプト初心者です。 Dreamweaverで画像(メイン画像が1枚、サムネイル画像が30枚ほどあります)のリモートロールオーバーをやったのですが、同時にテキスト(説明文5行ほど)も一緒に表示・切り替えする方法が知りたいです。 ジャバスクリプトで出来るのですか? 全く検討もつかないので、どうか宜しくお願いします。 ■以下現状のhtmlです。尚、練習用なのでスタイルシートは真っ白です。■ <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>無題ドキュメント</title> <link rel="stylesheet" type="text/css" href="index.css" /> <script type="text/JavaScript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> </head> <body onload="MM_preloadImages('img/l_mitudera.jpg','img/l_aigou.jpg','img/l_jyuzo.jpg','img/l_kyobashi.jpg','img/l_noda.jpg')"> <img src="img/l_mitudera.jpg" width="300" height="260" name="main"><br /><br /> <img src="img/s_mitudera.jpg" width="75" height="65" onmouseover="MM_swapImage('main','','img/l_mitudera.jpg',1)" onmouseout="MM_swapImgRestore()" /> <img src="img/s_aigou.jpg" width="75" height="65" onmouseover="MM_swapImage('main','','img/l_aigou.jpg',1)" onmouseout="MM_swapImgRestore()" /> <img src="img/s_jyuzo.jpg" width="75" height="65" onmouseover="MM_swapImage('main','','img/l_jyuzo.jpg',1)" onmouseout="MM_swapImgRestore()" /> <img src="img/s_kyobashi.jpg" width="75" height="65" onmouseover="MM_swapImage('main','','img/l_kyobashi.jpg',1)" onmouseout="MM_swapImgRestore()" /> <img src="img/s_noda.jpg" width="75" height="65" onmouseover="MM_swapImage('main','','img/l_noda.jpg',1)" onmouseout="MM_swapImgRestore()" /> </body> </html>

  • オンマウスで画像ロールオーバー+テキスト変更

    こんにちは、javascript初心者です。 現在、Dreamweaver CS4でサイトを作っています。 以下のような構成になっており、menuの画像をオンマウスすると、ロールオーバーして画像の色が変わるようにしています。 (javascriptはDreamweaverが自動生成しています) ▼ココカラ ------------------------------------------ <head> <script type="text/javascript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> </head> <body> <div id="menu"> <a href="a.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('menua','','a2.jpg',1)"><img src="a.jpg" alt="a" name="menua"></a> <a href="b.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('menub','','b2.jpg',1)"><img src="b.jpg" alt="b" name="menub"></a> <a href="c.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('menuc','','c2.jpg',1)"><img src="c.jpg" alt="c" name="menuc"></a> <a href="e.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('menud','','d2.jpg',1)"><img src="d.jpg" alt="d" name="menud"></a> </div> <div id="submenu">挨拶文</div> <div id="main"></div> <div id="footer"></div> </body> </html> ▲ココマデ ------------------------------------------ このメニューのオンマウスですが、ロールオーバーの動作は残したまま、submenu部分の挨拶文を各ページのサブメニューに差し変えることは可能でしょうか? (aのメニューをオンマウスすると画像の色が変わり、aのサブメニューがsubmenuに表示される等) 同じような事例を見つけたのですが、 http://okwave.jp/qa/q4651643.html こちらは画像が1箇所だったので、初心者の私では応用の仕方が分かりませんでした。 現在のjavascriptに追加する形でもまったく違うものでも良いですので、ご教授いただけると助かります。 よろしくお願いいたします。

  • 何を言っているのか教えて下さい

    Dreamweaverで出てきたものなのですが意味が分からないんで困ってます教えて下さい. function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && document.getElementById) x=document.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} }

  • javascriptタグを外部にしたい

    <script type="text/javascript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> DWでデフォルトでロールオーバーイメージを使ってスクリプトが出ています。SEO的にこれを外部に移したいのですが、どうやればいいのでしょうか?CSSと同じ記述でいいのでしょうか・・・ SEO的にはスクリプト自体使わないほうがいいのはわかっています

  • dreamweaverについて

    JavaやCSSがサーバーにUPロードしても反映しないのです。 dreamweaverのブラウザーの表示では、確かに確認できるのですが、 CSSのリンクかJavaの宣言に以下のコメントがひっているのですが、これが原因でようか? <link href="file:///F|/ais2008test/mystyle.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> 誰か教えてください!

  • これだけ複雑なのには何か意味が・・・?

    Dreamweaverでロールオーバーを作ると以下のスクリプトが生成されます。それぞれが何をしてるかは分かるのですが、なぜここまで複雑なのでしょうか?ただロールオーバーを実現させるならもっと単純なソースがいくらでもあるのに・・・。もし企業サイトでしたら、あらゆるブラウザでの動作が出来る必要がありますが、その為のプログラムが書いてあるのでしょうか? function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && document.getElementById) x=document.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} }

  • 文字列型定数?

    この度、カウンタを埋め込みましたが どうしても、上記タイトルのスクリプトエラー が発生します。 <head> <script language="JavaScript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v3.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> </head> 文字オーバーの為次へ(文字列型定数2)

  • ロールオーバーの処理で「最初の画像→click→ロールオーバーの画像→click→Yahoo!」という処理は出来ますか?

    Java Script初心者です。 画像をonclickでロールオーバさせています。 最初の画像をクリックするとロールオーバのイメージになり、その状態でもう1度クリックするとリンクに飛ばすことは出来ますか? やりたい事は以下のような処理です。 最初の画像→click→ロールオーバーの画像→click→Yahoo! 現在はロールオーバーの画像までは表示できましたが、その画像にリンクを貼ることができません。 色々調べましたら分かりませんでしたので、分かる方がいらっしゃいましたら教えてください。 --------------------------HTML-------------------------- <img src="images/image_01.jpg" id="Image1" alto="EVENT" onclick="MM_swapImage('Image1','','images/image_over_01.jpg',1)" onmouseout="MM_swapImage('Image1','','images/image_01.jpg',1) /> ------------------------Java Script-------------------------- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} }

  • Opera 表示が上手くいきません

    初めての質問です。宜しくお願いいたします。 タイトル画像をIE,NN,Mozillaでは画面の上、左側にピッタリ表示することができるのですが、Operaではタイトル画像のみ中央に配置されてしまいます。まだHTMLを勉強し始めてばかりで説明不足な点もあると思いますが、改善策をアドバイスして頂けないでしょうか? よろしくお願いいたします。 ------------------------------------------------------------- <!-- body { margin-left: 0px; margin-top: 0px; } --> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //-->

    • ベストアンサー
    • CSS
  • 2つのjavascriptの命令を1ページでやるには。

    Javascriptの超初心者です。 現在サイトを作っておりまして、 あるページに2つのjavascriptの命令を書き込みたいのですが。。。 1つはjavascriptによるプルダウンメニューをグローバルメニューの中に使用しています。 そしてもう1つはそのページ内にスワッピングで小さいサムネイル画像をクリックすると、大きな写真が切り替わるという仕掛けをjavascriptを使用して(dreamweaverの生成したものですが^^;)作ったのですが、 単体ではもちろん動作するのですが、2つ同時に自分なりにまとめてみてもどうにも動作しません。。2つを一緒にまとめるにはどのようなソースを書けばよいのでしょうか? どなたかご教授頂けませんでしょうか?宜しくお願い致します。 以下ソースです。 ●プルダウン用 (外部の長いjavascriptを読み込んでます) <link href="css/import.css" rel="stylesheet" type="text/css" media="all" /> <script src="js/SpryMenuBar.js" type="text/javascript"></script> <script type="text/javascript"><!-- window.onload = function(){ new Spry.Widget.MenuBar("MenuBar1"); } // --></script> ●スワッピング画像用 (直接書き込んでいます) <link href="css/import.css" rel="stylesheet" type="text/css" media="all" /> <script type="text/JavaScript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> 以上の2つはどのようにまとめたら両方動作するのでしょうか?