• 締切済み

マウスの追従とスクロール

マウス追従で少々困っているのでお力を貸していただきたいと思っております。 サンプルコードなどを参考にしながら、マウスを追従し、スクロールをしても後についてくるものを作り、しっかりと動作はしました。 しかし、常に表示させるのが邪魔なので、特定の画像の上だけなどに説明文として出そうとし、 function menu_dsp(divnam,flg0){ document.getElementById(divnam).style.visibility = flg0; } というスクリプトと該当部分と外部CSSに以下のスクリプトを書き加えました。 <span onMouseOver="menu_dsp('helpNavi','visible');" onMouseOut="menu_dsp('helpNavi','hidden');"> div#mapNavi { width: auto; height: auto; margin: 0px 15px; padding: 0px 5px; position: absolute; z-index : 1; visibility: hidden; background-color: #ffffff; border: 2px solid #ff99cc; } これらを追記するとページをスクロールさせた時に追従させたいものが置いていかれてしまいます。 単品ではしっかりと動作するので、隠す部分に何かまずい部分があるのかなと思うのですが、足りないものがあれば随時補足していきますので、解決法やアドバイスなどがありましたらよろしくお願いします。

みんなの回答

  • nipox
  • ベストアンサー率32% (10/31)
回答No.3

なるほど、これでよく分かりました。 なぜ、追従すると置いていかれるのか・・・ これは、ページをスクロールするのが原因ではないでしょうか。 スクロールする前は、ちゃんと追従できていませんか? もしそうならば、マウスストーカーのサンプルページから、もう一度全てのソースを拾ってこないといけません。 ・・・それと、マウスストーカーにする必要は全くないと思うのです。 画像の横に、あらかじめポップアップヘルプを、 <div>かなにかで、配置させておいて、 それを表示させるという形にしたほうがよいかと思いますが・・・ なにか、マウスストーカー方式でないとまずい面があったら教えてください。

flower42
質問者

お礼

確かに無理にマウスストーカーにする必要は全くありませんでしたね^^; マウスストーカーに特にこだわっていた訳ではなく、マウスストーカーで表示させた方が見た目が綺麗かな?と思い、なんとかしてできないだろうかとこだわってしまっていました為に、他の方法を利用しようという考えまで回っておりませんでした・・・。 nipoxさんのおっしゃられている方法を参考にし、再構成したいと思います。アドバイスありがとうございます。 また、私の疑問にお付き合いいただき、ありがとうございました。

  • nipox
  • ベストアンサー率32% (10/31)
回答No.2

もう後1点だけ補足していただきたいのですが、 <span>の中に画像ということで、 その画像に乗ったときだけ、 画像と文字を表示する?? という風にとらえる事が出来ますが、 画像の上にマウスを乗せる・・・ でも、その画像は表示されていませんよね?? ちょっとこの辺があいまいなので・・・ <span>の辺のソースか何かを載せていただけると分かるかもしれません。

flower42
質問者

補足

補足遅くなって申し訳ございません。 もともと表示されている画像データの上にポインタが来た時にマウスストーカーするポップアップヘルプを出したいという事なのですが、この表現でわかりますでしょうか? (うまいいい表し方が出来ずすいません・・・。) <span>の辺のソースに関しては以下の通りになっています。 <span onMouseOver="menu_dsp('helpNavi','visible');" onMouseOut="menu_dsp('helpNavi','hidden');"><img src="img/sample.jpg" boder="0" /></span> 該当部分を動かしているJavascirptに関しては以下の通りになっております。 function menu_dsp(divname,flg0){ document.getElementById(divname).style.visibility = flg0; }

  • nipox
  • ベストアンサー率32% (10/31)
回答No.1

もう少し詳しく書いていただけると答えやすいのですが・・・ 追従といっても、 そのスクリプトがありません。 マウスストーカーのことですか? 隠すとか、 spanなのに、なぜCSSはdivなのか、 隠す理由は、 なぜonmouseoverなのか、 等々・・・ 何をしたいのか順序を追って、具体的にしてくださると答えやすいです。

flower42
質問者

補足

すいません、やはり説明不足でした・・・・ マウスストーカーに関しては以下のサイトを参考にさせてもらっています http://www.red.oit-net.jp/tatsuya/java/cursor.htm 上記のマウスストーカーを使い、サイト内特定の画像の上のみでヘルプとして出したいと思っております。 しかし、普段からマウスストーカーで文字が出ているとサイトを見る時に邪魔かなと感じたので、マウスオーバーで画像の上に乗った時に出そうとimgタグをspanで括り、spanの中に書いてある画像上に乗っている間だけ表示させようとし、マウスオーバーを使っております。 CSSについてですが、若干IDの指定が間違っていますが、このDIVは上記のマウスストーカーのサイトを参考にした時にかかれていたDIVを自分で改良したものです。

関連するQ&A

  • マウスオーバーの合体

    マウスオーバーのプルダウンメニューと マウスオーバー画像変更スクリプトを組み合わせることは可能なのでしょうか? イメージとしては所期画面に画像Aがあり、マウスを載せると画像Aが画像Bになり、 更に画像Bの下にプルダウンメニューが表示されるイメージです。 尚、現在は以下の組み合わせがうまくいかない為(不可能?) 個々にスクリプトを記載しておきます。 ↓↓↓↓↓↓マウスオーバーのプルダウンメニュー↓↓↓↓↓↓ <html> <head> <script language="JavaScript"><!-- vType = ["hidden","visible"]; function pdMenu(mName) { Menu = document.all[mName].style; Menu.visibility = vType[Menu.visibility.indexOf("hidden") + 1]; } // --></script> </head> <body> <img src="main.png" onMouseover="pdMenu('Menu')"><br> <div id="Menu" style="visibility:hidden" onMouseout="pdMenu('Menu')"> <a href="http://www.yahoo.co.jp/" ><img src="sub01.png" border="0"></a><br> <a href="http://www.google.co.jp/"><img src="sub02.png" border="0"></a><br> </div> </body> </html> ↑↑↑↑↑↑マウスオーバーのプルダウンメニュー↑↑↑↑↑↑ ↓↓↓↓↓↓マウスオーバー画像変更スクリプト↓↓↓↓↓↓ <img border="0" src="main.png" onmouseover="this.src='main2.png'" onmouseout="this.src='main.png'"> ↑↑↑↑↑↑マウスオーバー画像変更スクリプト↑↑↑↑↑↑

  • マウスオーバーのプルダウンメニューについて

    すみません。まったくのしろうとです。教えてください。 会社のWebサイトをリニューアルしようとしていますが、メニューを折りたたみにしたいと考えています。ネットでmouseoverというJavaスクリプトでできるということまでは突き止めました。そしてサンプルも見つけたのですが、やりたいことと合致しなくて困っています。 <script language="JavaScript"><!-- vType = ["hidden","visible"]; function pdMenu(mName) { Menu = document.all[mName].style; Menu.visibility = vType[Menu.visibility.indexOf("hidden") + 1]; } // --></script> </head> <body> <IMG src="newimg/AdAge.gif" onmouseover="pdMenu('Menu1')"><br> <div id="Menu1" style="visibility:hidden" onMouseout="pdMenu('Menu1')"> <a href="http://www.openspc2.org/" >わっ!</a><br> <a href="http://www.impress.co.jp/">ぎゃっ!</a><br> <a href="http://game.gr.jp/" >しょえ~!</a><br> </div> </body> このスクリプトでは、newimg/AdAge.gifという画像の上にマウスをかざすと、言葉がプルダウンで出てきます。わたしがやりたいのは、この画像を単なるテキストに変えることです。HTMLエディタ上でイロイロやってみましたが、うまくいきません。この部分をテキストに変える方法を教えていただけないでしょうか? どうかよろしくお願いします。

  • onMouseOverの適応範囲

    困ってしまい質問させていただきます。 <div>  <a href="t1.html" onMouseOver="javascript:document.all('id1').style.visibility='visible';" onMouseOut="javascript:document.all('id1').style.visibility='hidden';">show</a> </div> <div id="id1" onMouseOver="javascript:document.all('id1').style.visibility='visible';" onMouseOut="javascript:document.all('id1').style.visibility='hidden';">  <a href="image.gif" onMouseOver="javascript:document.writeln(document.all('id1').style.visibility)">イメージ</a> </div> 以上のhtmlでは、「イメージ」にマウスを持っていくと、hiddenと表示されてしまいます。 一度も<div id="id1"></div>から離れていないため、visibleと表示されると思っているのですが、<div></div>の中であっても、onmouseOutが実行されてしまうのでしょうか? ブラウザはIEを利用しています。 どうか宜しくお願いします。

  • webサイトで文字にマウスを重ねた時に文章を表示させたい

    ウェブサイトで、JavaScriptを使用し、「挨拶」の文字にマウスを重ねた時、「こんばんは。」と表示されるようにしたいのですが、上手くいきません。 下記は私が記述したソースになります。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <html> <head> <title>テスト</title> <script language="JavaScript"> <!--//レイヤー表示 function Lay_View(name,sw) { if (document.all) { //IE用 document.all[name].style.visibility=sw; } else if (document.layers) { //NC用 document.layers[name].visibility=sw; } } //--> </script> </head> <body ONLOAD="preloadImages();"> <!-- 表示するレイヤー --> <div id="link2" style="position:absolute; width:600px; height:80px; z- index:1; left: 80px; top: 600px; visibility: hidden"> こんばんは。</div> <!-- ここまで --> <a href="http://www.geocities.co.jp/Milkyway/1958/" onMouseOver="Lay_View('link2','visible');Lay_View('linka','hidden');" onMouseOut="Lay_View('link2','hidden');Lay_View('linka','visible');" > 挨拶</a> </body> </html> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー この場合IEでは、ちゃんと表示されるのですが、Firefox等で見た場合、何も表示されません。どうすれば、他のwebブラウザにも対応できるのでしょうか? JavaScriptは初心者なので、修正すべき場所とコードを詳しく教えて頂けると助かります。よろしくお願い致します。

  • マウスオーバーで別の画像に切り替える

    リンクの上にマウスをもっていくと 画像を切り替えて、はなれるとまたもとにもどる っていうことをしたくて JavaScriptと sccのvisibility:hidden visibility:visible position:absolute; をつかって作ってみたのですが、予想できるとおもいますが、実際に画像を摩り替えてるわけではありません それで前になにかで、onMouseOver="this.src('')"のようなのをみたんですけど、ちゃんと思い出せません 正しくはどう書くのか教えてください

  • マウスに反応した画像スクロール

    例えば500px×500pxの画像があるとして、それを200px×200pxのサイズのFlashで見せたいと思っています。当然Flashの方がサイズが小さいので画像の全体像は見えませんが、マウスの動きに反応して右なら右、下なら下にスクロールさせたいのです。このとき、ループではなく、画像の端までスクロールしたら止めたい(できればゆっくり・そっと止めたい)んですが、検索しようとしてもせいぜい「action script 画像 スクロール」ぐらいしか思いつかず、そういったスクリプトのサンプルが見つかりません。もしご存じの方、慣れているからそれぐらいなら書いてやるというような優しい方、おられましたらよろしくおねがいします。 イメージとしてはこんな感じです。 http://www.uniden.jp/jijitsu/

    • ベストアンサー
    • Flash
  • スクロールマウスのスクロールの動作がおかしくなった

    通販サイトで買ったパソコンについてきたスクロールマウスなのですが2ヶ月くらい正常に動作していましたが最近スクロールの部分が正常に動作しなくなってしまいました。 上に動かしても下に動かしても画面はスクロールせず上下にガクガクしてしまいます。 どうやら、スクロールを回すと上と下両方動くようになってしまったようで全く使い物にならなくなってしまいました。 マウスは普通の2ボタン+スクロールでドライバは特に いじっていません。 ハードウェアのことはよくわからないので知識のある方 どうかご教授ください。よろしくお願いします。

  • javascriptの質問です。表示が残ってしまう

    オンマウスでサブメニューを出すjavascriptを組んでいます。 Firefox、Safari、Operaで次の行動を起こすとサブメニューが残ったままになります。 IEだと特に問題は有りませんでした。 OSはXPです。 ・オンマウスでサブメニューが開く ・サブメニューのリンクをクリックし、マウスは動かさずサブメニューが表示されたまま次のページへ ・ブラウザの戻るで元の画面に戻る ・サブメニューが残ったままになっている 原因が分かりません。アドバイスお願いします。 ソース <style type="text/css"> .mainmenu{ visibility : visible; width:200px; position : relative; z-index: auto; } .submenu{ visibility : hidden; width : 200px; top : -10px; left : 100px; position : absolute; background-color:#FFF; padding:10px; border:1px solid #CCCCCC; z-index: 1; line-height:1.5em; } </style> <SCRIPT language="JavaScript"> <!-- function showMenu(ss){ var getStyle = document.getElementById(ss); getStyle.style.visibility = "visible" } function hiddenMenu(tt){ var getsStyle = document.getElementById(tt); getsStyle.style.visibility = "hidden" } //--> </SCRIPT> <div class="mainmenu" onmouseover="showMenu('treeMenu1')" onmouseout="hiddenMenu('treeMenu1')"> <a href="URL1">■ <strong>メインメニュー1</strong></a> <div class="submenu" id="treeMenu1"> <div><a href="URL1-1">サブメニュー1</a></div> <div><a href="URL1-2">サブメニュー2</a></div> <div><a href="URL1-3">サブメニュー3</a></div> </div> </div>

  • Flashでのマウスの位置に合わせてスクロール。

    作業環境 PC : Windows7 Flash : Flash8 Actionscript : 2.0 困っています。 Flashの制作でマウスの位置に反応して左右にスクロールするのもを作りたいのですが、マウスに反応はしてくれても、画像のループ処理がうまくいかず、画像が途切れてしまいます。 ■参考にしているサイト http://acchan.s55.xrea.com/flash/scroll_menu/0501/scroll_menu0501b.html 僕が作ろうとしている状況は、下記の通りです。 ・ステージサイズ1160pxで、高さは223px ・スクロールする画像の全体での長さは3240px ・スクロールする画像は各ボタンになっていて、180pxが18個並んでいます。 理想としては、マウスの位置に合わせて、画像が両サイドに永久ループし、マウスオーバーしている画像は、その画像のリンク先に飛ばせるようにしたいのです。 どうかお力おお貸しください。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • ロールオーバーで画像拡大、z-index

    下記の様にjavascriptとcssで、 サムネイル画像をロールオーバーしたら拡大画像が表示されるように設定しました。 しかしz-indexが効かずに拡大画像がほかのサムネイル画像の下に表示されてしまいます。 z-indexの対処方法などいろいろ調べ試してみたのですが、 うまくいきませんでした。 どのようにすればうまく表示できるか教えていただけないでしょうか。 よろしくお願いします。 <html> <head> <title>テスト</title> <script type="text/javascript"> <!-- function setStyle(thum,vType) { document.getElementById(thum).style.visibility = vType; } //--> </script> </head> <body> <p style="margin-top:50px;"> <div style="position:relative; float:left;"> <div id="thum1" onMouseover="setStyle('thum2','visible'),setStyle('thum1','hidden')" onMouseout="setStyle('thum2','hidden'),setStyle('thum1','visible')" style="border:0px; z-index:2;"> <img src="thum1.png" width="100" height="100"> </div> <div id="thum2" style="position:absolute; z-index:10; top:-100px; left:-50px; visibility:hidden;" onMouseover="setStyle('thum2','visible'),setStyle('thum1','hidden')" onMouseout="setStyle('thum2','hidden'),setStyle('thum1','visible')"> <img src="thum2.png"" style="border:1px solid #dedede;" width="200" height="200"> <div style="background-color:#dedede; padding:5px; width:192px; line-height:99%;"> <b><center>テスト1</center></b> </div> </div> </div> <div style="position:relative; float:left;"> <div id="thum3" onMouseover="setStyle('thum4','visible'),setStyle('thum3','hidden')" onMouseout="setStyle('thum4','hidden'),setStyle('thum3','visible')" style="border:0px; z-index:2;"> <img src="thum3.png" width="100" height="100"> </div> <div id="thum4" style="position:absolute; z-index:10; top:-100px; left:-50px; visibility:hidden;" onMouseover="setStyle('thum4','visible'),setStyle('thum3','hidden')" onMouseout="setStyle('thum4','hidden'),setStyle('thum3','visible')"> <img src="thum4.png"" style="border:1px solid #dedede;" width="200" height="200"> <div style="background-color:#dedede; padding:5px; width:192px; line-height:99%;"> <b><center>テスト2</center></b> </div> </div> </div> <div style="position:relative; float:left;"> <div id="thum5" onMouseover="setStyle('thum6','visible'),setStyle('thum5','hidden')" onMouseout="setStyle('thum6','hidden'),setStyle('thum5','visible')" style="border:0px; z-index:6;"> <img src="thum5.png" width="100" height="100"> </div> <div id="thum6" style="position:absolute; z-index:10; top:-100px; left:-50px; visibility:hidden;" onMouseover="setStyle('thum6','visible'),setStyle('thum5','hidden')" onMouseout="setStyle('thum6','hidden'),setStyle('thum5','visible')"> <img src="thum6.png"" style="border:1px solid #dedede;" width="200" height="200"> <div style="background-color:#dedede; padding:5px; width:192px; line-height:99%;"> <b><center>テスト3</center></b> </div> </div> </div> </p> </body> </html>

    • ベストアンサー
    • HTML

専門家に質問してみよう