• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オンマウスで流れる文字)

オンマウスで流れる文字の表現方法

hok212の回答

  • hok212
  • ベストアンサー率66% (100/150)
回答No.2

JavaScript+CSSでやるのなら、こんな感じでしょうか。 <style type="text/css"> #obox { width:300px; border:1px solid #000; white-space:nowrap; overflow:hidden; } #ibox { margin:5px; } </style> <script type="text/javascript"> xpos = 0; function startScroll() { xpos = xpos - 1; xposValue = xpos + "px"; document.getElementById("ibox").style.marginLeft = xposValue; scroller = setTimeout("startScroll()",10); } function stopScroll() { clearTimeout(scroller); } </script> <div id="obox"> <div id="ibox" onmouseover="startScroll()" onmouseout="stopScroll()">長文</div> </div> 簡単に使い方の説明をすると、 <script>ブロックの「-1」を -2 や -5 などにすることで速度が速くなります。単位はピクセルです。 あるいはsetTimeoutの第2引数「10」を 20 や50 などにすることでも速度を調整できます。こちらの単位はミリ秒です。 なお、IE8、Firefox3.6、Chrome10、Safari5.0(すべてWin7) での動作は確認しました。

mfrogs
質問者

お礼

詳しく回答をありがとうございました! 勉強になりました。

mfrogs
質問者

補足

あまりに理想に近く感動に震えました! そして…欲がでてきてしまいました…。 【1】マウスをはなすと文字が元の位置になる 【2】マウスをのせている間、marqueeのように最後の文章までいっても    最初の所にもどり、何度も文字が流れる   ※さらにできれば、初めと終わりの文字の間はスペース1文字分くらいだと最高!! までできたら完璧に理想が叶いまして、 いただいた記述を何度も見返し四苦八苦、下記のようにして なんとか【1】は表現できるようになりました。 <script type="text/javascript"> xpos = 0; function startScroll() { xpos = xpos - 1; xposValue = xpos + "px"; document.getElementById("ibox").style.marginLeft = xposValue; scroller = setTimeout("startScroll()",10); } function stopScroll() { xpos = 0; xposValue = xpos + "px"; document.getElementById("ibox").style.marginLeft = xposValue; clearTimeout(scroller); } </script> しかし、マウスオーバー中にずっと文字列を流すというのがどうしても難しく、 もし何かご存じでしたらご教示いただけないでしょうか…。 ちなみに、私の環境はMac OS 10.4でして、 Opera・Safari・Firefoxで調べたところ、 いただいた記述でちゃんと動きました。

関連するQ&A

  • オンマウス時の画像表示がおかしい

    作成中のホームページのボタン表示を 左側に縦に10個ほどな食べ CSSを使用してマウスを乗せた時にJPG画像を切り替えるように していますが、マウスを乗せた時に 本来表示されないはずの画像ボタンが一瞬表示されてしまいます。 トップページボタンの上にマウスを乗せたあとマウスをサイトマップボタンの 上に移動するとまたトップページの画像が一瞬表示されてしまう どうやら直前に表示した画像が表示されているみたいです どうしたらこの不具合が解消できるのでしょうか? どなたかお力添えお願いいたします HTML <div id="navibar"> <ul> <li> <div id="btn00"><a href="index.html">Top</a></div> </li> <li> <div id="btn01"><a href="contents.html">システム</a></div> </li> <li> <div id="btn02"><a href="ryoukin.html">料金</a></div> </li> <li> <div id="btn03"><a href="shiryou.html">資料請求</a></div> </li> <li> <div id="btn04"><a href="privacy.html">プライバシーポリシー</a></div> </li> <li> <div id="btn05"><a href="hyouji.html">会社概要</a></div> </li> <li> <div id="btn06"><a href="sample.html">サンプル</a></div> </li> <li> <div id="btn07"><a href="merit.html">メリット</a></div> </li> <li> <div id="btn08"><a href="yougo.html">専門用語</a></div> </li> <li> <div id="btn09"><a href="syoukai.html">紹介制度</a></div> </li> <li> <div id="btn10"><a href="map.html">サイトマップ</a></div> </li> </ul> </div> CSS #navibar #btn00 a { height: 28px; width: 180px; display: block; text-indent: -9999px; background-image: url(btntop.jpg); margin-bottom: 1px; }

    • ベストアンサー
    • HTML
  • jquery tab要素に文字列追加

    jqueryのタブ要素にinnerhtmlで文字列を挿入したいのですが、なぜかどのような文字列を挿入しても 先頭に"undefined"の文字が挿入されてしまいます。 この文字列が入らないようにするにはどのようなコードを書く必要があるのでしょうか? ご教授お願いします。 コード例は下に記載させて頂きました。 <div style='clear:both;' id="tabdemo1"> <ul> <li><a href="#ex1">ex1</a></li> <li><a href="#ex2">ex2</a></li> </ul> <div id="ex1"> </div> <div id="ex2"> </div> </div> var html; html="Hello world"; document.getElementById("ex1").innerHTML += html;

  • <div>と<div>の隙間を無くす方法

    ヘッダーの<div>を作って、その下に横長(ヘッダーと同じ長さです)ナビのメニューの<div>を作りたいのですが、ヘッダーの下とナビの上に20pxほどの隙間が空いてしまいます。なぜでしょうか?マージンを0に設定してもできてしまいます。 また、ナビメニューはボタンの画像にして文字を埋め込んであります。全部で6つです。それをulで右にフロートさせ、liを左にフロートさせています。DWで作っていますが、DWのプレビュー画面で確認すると、メニューがulで右にフロートしてありますが、liが左にフロートされてなくブロック状態で表示されます。しかし、IEやfirefoxなどのブラウザで確認すると、ちゃんとインライン表示されます。それが原因しているのでしょうか? また、メニューボタンはjavascriptでスワップイメージにしました。 どなたかわかる方いらっしゃいますか? とても困っています。できましたら至急にお願いいたします。 コードを載せておきます。 <div id="header">     <div id="aa"> <h1>*********</h1> <h2>*********</h2> <p>**********<br /> *************</p> </div><!--aa-->     <div id="bb"> <p>********</p> </div>><!--bb--> </div><!--header--> <!--navi--> <div id="navi"> <ul #menu> <li><a href="#" onmouseover="MM_swapImage('','','',1)" onmouseout="MM_swapImgRestore()"><img src="" name="" /></a></li> <li><a href="#" onmouseover="MM_swapImage('','','',1)" onmouseout="MM_swapImgRestore()"><img src="" name="" /></a></li> <li><a href="#" onmouseover="MM_swapImage('','','',1)" onmouseout="MM_swapImgRestore()"><img src="" name="" /></a></li> <li><a href="#" onmouseover="MM_swapImage('','','',1)" onmouseout="MM_swapImgRestore()"><img src="" name="" /></a></li> <li><a href="#" onmouseover="MM_swapImage('','','',1)" onmouseout="MM_swapImgRestore()"><img src="" name="" /></a></li> li><a href="#" onmouseover="MM_swapImage('','','',1)" onmouseout="MM_swapImgRestore()"><img src="" name="" /></a></li> </ul> </div> <!--navi--> ヘッダー部分のcss #header{ width: 800px; height: 120px; background-image: ***; background-repeat: repeat-y; margin: 0px; } ナビ部分のcss #navi{ width: 800px; height: 35px; } } ul#menu{ float: right; display: inline; margin: 0; } li{ float: left; margin: 0;

    • ベストアンサー
    • CSS
  • オンマウスで表示されるテキスト

    先ほどhttp://okwave.jp/qa4091921.htmlで質問させて頂いた者です。 下記のソースコードをお教え頂いたのですが、初めてページを開いた 時に↓の部分がすでに表示されている状態にするには、どうしたらよ いのでしょうか? どうぞよろしくお願い致します。 ページを開いたときに表示していたい部分 -------------------------------------------- <ul class="hide" id="sub1"> <li>親メニュー1のサブメニュー1 <li>親メニュー1のサブメニュー2 <li>親メニュー1のサブメニュー3 <li>親メニュー1のサブメニュー4 </ul> -------------------------------------------- 教えて頂いたソースコード <style> .hide{ display:none; } </style> <script> function show(id){ var obj=document.getElementById(id); var n=obj.parentNode.firstChild; while(n){ if(n.nodeName=="UL") n.className="hide"; n=n.nextSibling; } obj.className=""; } </script> <ul> <li><a href="#" onMouseover="show('sub1')">親メニュー1</a></li> <li><a href="#" onMouseover="show('sub2')">親メニュー2</a></li> <li><a href="#" onMouseover="show('sub3')">親メニュー3</a></li> <li><a href="#" onMouseover="show('sub4')">親メニュー4</a></li> </ul> <hr> <div> <ul class="hide" id="sub1"> <li>親メニュー1のサブメニュー1 <li>親メニュー1のサブメニュー2 <li>親メニュー1のサブメニュー3 <li>親メニュー1のサブメニュー4 </ul> <ul class="hide" id="sub2"> <li>親メニュー2のサブメニュー1 <li>親メニュー2のサブメニュー2 <li>親メニュー2のサブメニュー3 <li>親メニュー2のサブメニュー4 </ul> <ul class="hide" id="sub3"> <li>親メニュー3のサブメニュー1 <li>親メニュー3のサブメニュー2 <li>親メニュー3のサブメニュー3 <li>親メニュー3のサブメニュー4 </ul> <ul class="hide" id="sub4"> <li>親メニュー4のサブメニュー1 <li>親メニュー4のサブメニュー2 <li>親メニュー4のサブメニュー3 <li>親メニュー4のサブメニュー4 </ul> </div>

  • 文字をオンマウスすると、画像がかわり、クリックで他のページへいくようにしたい。

    初めてJavaを使いました。 『文字にマウスを当てると、上に置いた画像がかわり、さらにその文字をクリックすると、他のページにいくようにしたいのです』 文字にマウスを当てると、上に置いた画像が変わるとこまではできましたが、どうしても他のページへのリンクができません。 よい方法を教えてください。 作ったHTMLは以下のとおりです。 <SCRIPT language="JavaScript"><!-- function myChgPic(myPicURL){ document.images["myBigImage"].src = myPicURL; } // --></SCRIPT> <TABLE align="center"> <TBODY> <TABLE border="0" align="center"> <TBODY> <TR> <TD><IMG src="ankor.jpg" name="myBigImage" border="2"></TD> </TR> <TR> <TD><A href="javascript:void(0)" onmouseover="myChgPic('shanghai.jpg')">上海 <br> <A href="javascript:void(0)" onmouseover="myChgPic('italy.jpg')">イタリア <br> <A href="javascript:void(0)" onmouseover="myChgPic('canada.jpg')">カナダ    </A>    </TD> </TR> </TBODY> </TABLE> 上海、カナダ、イタリアという文字をクリックしたら、その写真にかわり、文字をクリックしたらそれぞれのページにリンクさせたいのです。

  • Marqueeタグについて

    テーブル内で特定のセルのみ文字列がスクロールする画面を製造しています。 スクロールにはMarqueeタグを使用し、 初期表示では文字列が静止 マウスを乗せると文字列がスクロール マウスを外すと文字列が静止 という動きを行いたいのですが、 初期表示はデフォルトで文字列がスクロールしてしまいます。 初期表示で文字列の静止は出来ないものなんでしょうか? <table> <tr> <td height="20" width="100">AAA</td> <td height="20" width="100"> <Marquee id="mar1" width="100" onmouseover=this.start() onmouseout=this.stop()>BBB</Marquee></td> <td height="20" width="100">CCC</td> </tr> </table>

  • マウスオーバー時の文字サイズ

    テキスト文にマウスを合わせると指定したポイントに文字列を表すようにしたいです。 -------------------------------------- <SCRIPT language="JavaScript"> <!-- msg=new Array(); msg[0]=""; msg[1]="こんにちは"; function Msg(index){ if(document.all){ box.innerHTML = msg[index]; }else if(document.layers){ document.box.document.open(); document.box.document.write(msg[index]); document.box.document.close(); } } //--> </SCRIPT> <DIV id="box" style="position:absolute;top:250;left:350;"></DIV> <a href="http://abc.html" target="_blank" onMouseOver="Msg(1)" onMouseOut="Msg(0)">あいさつ</a> ------------------------------------ 上記の文章はどこかのサイトにある構文をコピペ、参考にさせていただいたものです。 これで一応表示されるのですが、 このとき、表示される「こんにちは」の文字サイズ、色を指定することは出来ますでしょうか? また、座標を指定していますが、ブラウザーやOS、解像度などの違いが表示に影響することはありませんでしょうか?

  • 正規表現で抜き出した特定の文字列をDBに格納する

    外部Webページのソースから正規表現を用いて特定の文字列を抜き出したいと思っています。外部Webページのソースは以下の通りです。 <td>  <div class="s-box left">   <a href="URL"><img src="" alt="" width="" height="" border="" class="book" /></a>   <h3><a href="URL">書名</a></h3>   <h4>著者:文字列<br />定価(税込):500円</h4>  </div>  <div class="s-box center">   <a href="URL"><img src="" alt="" width="" height="" border="" class="book" /></a>   <h3><a href="URL">書名</a></h3>   <h4>著者:文字列<br />定価(税込):710円</h4>  </div>  <div class="s-box right">   <a href="URL"><img src="" alt="" width="" height="" border="" class="book" /></a>   <h3><a href="URL">書名</a></h3>   <h4>著者:文字列<br />定価(税込):730円</h4>  </div> </td> 上記のようなソースからdiv classごとに、 書名 著者:文字列 定価(税込):---円 という具合に抜き出したく思っていまが、正規表現がわからずプログラムが組めません。また、その抜き出した文字列をDB(MySQL)に自動的に格納するためにはどうしたらよいか。どなたかご教授頂けないでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 【Html CSS】<a>の上に文字を配置したい

    添付の画像の様にしたいです。 一番左には「SoldOut」って文字が一番上に配置されてます。 (この状態でhoverも<a>のリンクも効かせたい) 以下は、ソースです。これを添付の画像の様にしたいです。 <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <meta http-equiv='Content-Style-Type' content='text/css'> <style> img{ border: 0px; vertical-align: middle; } .box li{ float: left; list-style:none; } .box .out{ border-right: 10px solid #fff; border-top: 10px solid #fff; } .box a { text-align: center; display: block; text-decoration: none; font-weight: bold; color: #69380f; background-color: #f2f2f2; width: 100px; height: 120px; } .box a:hover{ background-color: #ccc; } </style> </head> <body> <ul class='box'> <li><div class='out'><a href='javascript:void(0);'>hoge<br><img src='shop.cgi?img=1'><br>300円</a></div></li> <li><div class='out'><a href='javascript:void(0);'>hoge<br><img src='shop.cgi?img=1'><br>300円</a></div></li> <li><div class='out'><a href='javascript:void(0);'>hoge<br><img src='shop.cgi?img=1'><br>300円</a></div></li> </ul> <br> </body> </html> 以上、ご指導の程、宜しくお願いいたします。

    • ベストアンサー
    • CSS
  • フルスライドの画像上に文字を入れたい

    すみません、初心者です。 htmlは、 <div id="container"> <div class="fullSlideShow"> <ul> <li><a href="#1"><img src="img/photo01.jpg" alt=""></a></li> <li><a href="#2"><img src="img/photo02.jpg" alt=""></a></li> <li><a href="#3"><img src="img/photo03.jpg" alt=""></a></li> <li><a href="#4"><img src="img/photo04.jpg" alt=""></a></li> <li><a href="#5"><img src="img/photo05.jpg" alt=""></a></li> <li><a href="#5"><img src="img/photo06.jpg" alt=""></a></li> </ul> </div> <div class="helo"> <h1>site title</h1> <p>abcdefg</p> </div> と書いてみました。CSSですが、 .fullSlideShow h1 { position: absolute; z-index:500; left: 40px; top: 40px; padding-right: 40px; font-size: 2em; line-height: 1.20; } .fullSlideShow h1 a.textlink { color: white; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5); text-decoration: none; } としてみましたが表示されません。まだサイズや位置は気にせず表示されるように試してみているのですが、どうも文字が画面上に現れてくれません。 とりあえず、h1とpだけでも表示させたいのですが、教えて頂けないでしょうか。 どうぞ宜しくお願いします。

    • ベストアンサー
    • CSS