• 締切済み

ボタン画像の下のFlashにポインタを移動するとロールオーバーのまま(IE以外)

例として、三洋電機と三菱電機のサイトをあげます。 http://www.sanyo.co.jp/ http://www.mitsubishielectric.co.jp/index.html これらのサイトは、メニューにボタン画像を使用しており ロールオーバーの効果をもたせています。 そして、ボタン画像のすぐ下にページのメイン要素となるFlashが配置されています。 私もこのような構造のサイトを作っているのですが、 ひとつ解決できない問題があり悩んでいます。 私の作ったサイトでボタン画像にポインタを乗せるとロールオーバーするのですが、 ロールオーバー状態でポインタをFlashに移動させると ボタン画像が通常の画像に戻らずロールオーバーのままなのです。 ポインタをFlashの領域から外すと通常のボタン画像に戻ります。 この現象は、Win IE以外のブラウザ(FirefoxやSafari)で起こります(Macではまだ検証していません)。 しかし、先述の三洋や三菱のサイトでは、 ボタン画像にポインタを乗せロールオーバー状態でポインタをFlashに移動させても、 ボタン画像が通常の画像に戻ります。 ちなみに、私のサイトでは、ボタン画像をJavaScriptの「rollover.js」を、 Flashは「SWFObject」を使って配置しています。 何か解決策をご存知の方いらっしゃいましたら どうぞ宜しくお願いします。

  • pileny
  • お礼率89% (325/362)
  • HTML
  • 回答数1
  • ありがとう数6

みんなの回答

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

以前、ちょっと類似したご質問があったのでもしかしたら…と思ったのですが。 <div id="navi"> <ul> <li><a href="#">ナビ1</a></li> <li><a href="#">ナビ2</a></li> <li><a href="#">ナビ3</a></li> </ul> </div> <div id="flash"> (Flashに関する記述) </div> こんな感じの構造になっているでしょうか?もしかして、ナビの<a>の部分が一部閉じていなかったりはしませんか? 同様の構造のサンプルで試してみましたら、この場合、<a>の領域が正しく判断できなくなる為なのか、Firefoxなどのより文法にストリクトなブラウザではロールオーバーがONの状態になり放しになる様です。しかし、とかく何かと解釈の緩いIEではそのあたりを勝手に補正(迷惑な話です)してしまう様で、問題がない様に見えてしまいます。 既にHTMLの文法チェック済みで該当しない様でしたら忘れて下さい。

pileny
質問者

お礼

ご回答ありがとうございます。 >こんな感じの構造になっているでしょうか? はい。以下のような感じです。 <div id="gnavi"> <ul> <li><a href="1.html"><img src="abc.gif" class="imgover" /></a></li> <li><a href="2.html"><img src="xyz.gif" class="imgover" /></a></li> </ul> </div> <div id="flash"> Flash </div><!-- / #flash --> <script type="text/javascript"> // <![CDATA[ var so = new SWFObject("aiueo.swf", "xx", "800", "300", "9", "#fff"); so.addParam("menu", "false"); so.addParam("wmode", "window"); so.addVariable("flashVarText", "this is passed in via FlashVars for example only"); so.write("aiueo"); // ]]> </script> HTML自体は「Another HTML-lint gateway」でチェックをかけていて、 問題はありませんでしたので、<a>タグの抜けはありません。 このほか、私のサイトでは以下のXML宣言をしていますが、 <?xml version="1.0" encoding="shift_jis"?> 消してみても解決しませんでした。 文書型宣言は「XHTML 1.0 Transitional」です。

関連するQ&A

  • ボタンにロールオーバーで吹き出し表示

    ボタンにロールオーバーで吹き出し表示 flash初心者です。。 ボタンが数個並んでおり、それぞれにロールオーバーすると、吹き出しで説明画像を表示、マウスが外れたら吹き出しも消える、ということをしたいです。 難しいスクリプトを使わずに出来るだけ単純で分かりやすい方法(gotoandplayくらい)で実現するにはどうしたらよいでしょうか? ネットで調べたりしているのですが、スクリプトだと応用が出来ず… ご存知の方がいらっしゃいましたらどうかお教え願えないでしょうか。

  • javascriptで作ったロールオーバーがロールオーバーのままになってしまう

    質問お願いします。 javascriptで作った画像二枚で表現するロールオーバーボタンの不具合についてです。 ieでの動作は問題なかったのですがsafari3.1.2とfirefox3.03では、 その作ったロールオーバーボタンをクリックして他のページに行き、 そしてブラウザに予め備わっている機能の戻るボタンで元のページに戻るとクリックしたロールオーバーボタンがマウスが重なっていないのにロールオーバーしたままの状態になってしまいます。 (その状態でもう一度ロールオーバーボタンにマウスを重ねると元に戻ります。) 流れを簡単に書かせていただきます。 <1.ロールオーバーボタンをクリックする> ↓ <2.他のページにリンクする> ↓ <3.リンク先のページでブラウザの戻るボタンをクリックする> ↓ <4.1のページに戻る> ↓ <5.1でクリックしたロールオーバーボタンがカーソルが触れていないのにロールオーバーした状態> ロールオーバーボタンを作る方法は二通り試したのですが、両方とも上に書いた通りの状態です。 <試した方法> 1.DreamweaberMXのビヘイビア機能で作成。 2.http://css-happylife.com/log/javascript/000157.shtmlこちらのページを参考にさせて頂いての作成。 この不具合の事を気にして色々なウェブサイトを見てみたのですが、やはりjavascriptで作っているであろうロールオーバーボタンは同じような状態のウェブサイトが、多数有りました。 この問題の解決策をご存じの方がいらっしゃいましたら、どうかご教授下さい。よろしくおねがいします。

  • FLASH5で、ボタンにロールアウト時にもアニメーションさせたい

    FLASH5を使用しているのですが、ボタンにマウスのロールオーバーで アニメーションを設定することはできますが、ロールアウトしたときにも アニメーションを設定したい場合、どのような方法があるか教えていただきたいです。 今私が作りたいのは「何もないところにロールオーバーするとボタンがゆっくり表示され、 ロールアウトするとゆっくり消える」というものです。 現時点では、私はムービークリップの中にボタンを入れ、最初のフレームで フレームアクションに stop (); を設定し、そこに配置してあるボタン(ここでは、透明なボタン)に on (rollOver) { play (); } で次のフレームに行くようにし、そこでロールオーバー時のアニメーション(ゆっくりボタンが現れる) を作成して、止めたいところでフレームアクションに stop (); を設定し、その停止時に配置してあるボタン(表示されている可視状態)に on (rollOut) { play (); } を設定し、その次のフレームからはロールアウト時のアニメーション(ゆっくりボタンが消える) を作成しています。 これだと、動作はするのですが メニュー等のようにボタン(この場合はボタンを含んだ ムービーですね)を隣接させて複数置いた場合などに on (rollOut) { play (); } のスクリプトがうまく効かず、他のボタンにロールオーバーしているにも関わらず前にロールオーバーした ボタンがそのままの状態(ボタンが消えず表示されたままの状態)で残ってしまいます。 tellTargetとifを使用するのかな?とも考えたのですがよくわからず困っています、、、、 長文で申し訳ないのですが、よろしくお願いします。

  • ボタン(MCでも)をロールオーバーしても変化しないポインタ

    ボタン(MCでも)をロールオーバーしても変化しないポインタはどうやってやるのでしょうか。 マウスポインタを消す方法はわかるのですが、 マウスカーソルをそのまま手みたいなマークにならないようにしたいのです。 隠しリンクみたいなのを作りたいのです。。 どうやったらいいのでしょうか。 (少し前に違う質問をしたのですが、なぜか今締め切ることが出来ないので、朝もう一度やってみます。。すみません)

    • ベストアンサー
    • Flash
  • 一度ロールオーバーして表示させた画像をそのまま残したい

    Flash AS初心者です。 ボタンにロールオーバーした際に、別フレームで作成した吹き出しが任意の場所で表示されるような動きを作成しています。 通常であれば on (rollOver) { gotoAndStop(4); } で済むと思うのですが、ロールアウトした時、別のボタンにロールオーバーした時にも、もともと表示されていた吹き出しをそのまま残したいのです。(上記だと当然ながら消えてしまいます) ボタンとリンクする吹き出しは8つあるので、全て表示した際には重ならないようなレイアウトは考えているのですが・・・ つたない説明ですみません。 ご教授いただければ幸いです。

    • ベストアンサー
    • Flash
  • Flashのボタンオーバー

    Flash5を使用しています。 ボタンシンボルを作り、オーバーにムービーシンボルを配置して ボタンオーバーでアニメーションをするボタンを作成しました。 そこで問題が出てきました。 アニメーションは繰り返ししないように作ったつもりだったのですが、 クリックして離しても再びアニメーションしてしまうのです。 これをオーバーのみでアニメーションさせるにする方法ってないのでしょうか? わかる方いらっしゃいましたら教えてください。

  • ロールオーバーで切り替えられるのは出来るの画像だけ?

    リモートロールオーバーで、サイトの更新情報を表示しようと思っています。 テーブルを組んで、サイトの各コンテンツの名前をオンマウスすると、横のセルに画像が表示されるようにしました。 更新情報だけは、画像が半分のサイズで、もう半分にテキスト(更新情報)を表示したいのです。 (以前はインラインフレームでこの方法を取っていたので、フレームを組んだページを表示させていたので問題なかったのですが、オンマウス表示にしたくて、悩んでいます) ロールオーバーの機能では画像だけしか切り替えが出来ないのでしょうか? また、テーブルの一つのセルの中に、画像とテキストの2種類をオンマウスで表示させる事は可能でしょうか? 御回答頂けると嬉しいです。

  • Flash MCにロールオーバーするとスライドインするテキスト

    これをなんとかやってみようと試行錯誤してますがうまくいきません。ロールオーバーさせようとしているMCはマウスがロールオーバーすると拡大するというスクリプトが書かれています。このアクションと同時にマウスのロールオーバー時にテキストをスライドインさせたいのですが、どのようなスクリプトをかけばよいでしょうか? 透明ボタンを作って拡大されたMCとの当たり判定でテキストをスライドインさせる等の試行錯誤をしましたがうまくいきません。どうかご教授よろしくお願いします。 プライベートのチューターとして、時給でチューターを探そうとさえ考えています。

  • Flash、ロールオーバーで情報を表示させたい

    海外向けのサイトで、日本地図の各県にロールオーバーすると、欄外にその県の面積や人口などの情報(テキストor画像)を表示させ、クリックすると各県のサイトへリンクしたい。 情報(テキストor画像)を表示させる位置は、どの県でも同じ位置に固定させたい。 リンクは  on (release)  {   getURL("url", "_blank");  } で分かるのですが、ロールオーバーで各県の情報を同じ位置に次々に表示させる方法が分かりません。 60歳の手習いで、Flash CS4を使っています。よろしくご指導ください。

  • ロールオーバーで下の画像を表示させる

    質問番号:7020788を参考にしています。 http://okwave.jp/qa/q7020788.html 一番下に写真(400x400)を置き、その上にmc0~mc3(200×200)を4つ配置しました。 mc0にロールオーバーすればmc0がフェードアウトして200×200だけが写真を見え るようにしたいと考えています。 同様にmc1にロールオーバーすればmc1がフェードアウトします。 しかし、どのmcにロールオーバーしてもmc0~mc3の全体がフェードアウトしてし まい、私が思っておるように動作いたしません。 次にアクションスクリプトを示します。 mport fl.transitions.*; import fl.transitions.easing.*; mc0.addEventListener(MouseEvent.ROLL_OVER,onrollOver); mc1.addEventListener(MouseEvent.ROLL_OVER,onrollOver); mc2.addEventListener(MouseEvent.ROLL_OVER,onrollOver); mc3.addEventListener(MouseEvent.ROLL_OVER,onrollOver); function onrollOver(eventObj:Event):void { for (var i:Number = 0; i<=3; i++) { TransitionManager.start(this, {type:Fade, direction:Transition.OUT, duration:2, easing:None.easeNone}); removeEventListener(MouseEvent.ROLL_OVER,onrollOver); } } FLASH CS3でアクションスクリプトは3.0で作っています。どうか対処策を教えて いただきたく思います。

    • ベストアンサー
    • Flash

専門家に質問してみよう