プロが教えるわが家の防犯対策術!

テキストボックスにスクロールする文字列を表示する方法を知りました。^^
これはできたのですが、同じページで、「★メッセージ1」の他に
「別の表示」をさせたいのですがどうしたらいいんでしょうか?
例えば、「★メッセージ2」。など 

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT language="JavaScript">
<!--
msg="★メッセージ1     ";
function scroll(){
msg=msg.substring(1,msg.length)+msg.substring(0,1);
document.myform.mytext.value=msg;
setTimeout("scroll()",300);
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="scroll()">
<CENTER>
<FORM name="myform">
<INPUT name="mytext" size="20">
</FORM>
</CENTER>
</BODY>
</HTML>

A 回答 (3件)

<FORM name="myform">


<INPUT name="mytext1" size="20"><br>
<INPUT name="mytext2" size="20">
</FORM>
といったHTMLを想定していますが ・・・
    • good
    • 0
この回答へのお礼

動きましたぁぁぁ  >_<
どうもありかどうごさいまぁぁぁぁす。

お礼日時:2008/10/19 21:24

テキストボックスが違うものをということであれば



<script language="JavaScript">
<!--
var msg1="★メッセージ1     ";
var msg2="★メッセージ2     ";

var timer1, timer2;
var t1, t2;

function scroll(obj, t, m){
  var msg;
  if ( t != undefined ) {
    clearTimeout( t );
  }
  if ( m == undefined ) {
    m = obj.value;
  }
  msg = m.substring(1, m.length) + m.substring(0,1);
  obj.value = msg;
  if ( obj == t1 )
    t = setTimeout("scroll( t1, timer1 );",300);
  else
    t = setTimeout("scroll( t2, timer2 );",150);
}
//-->
</script>
といった具合にします
bodyタグは <body> だけにして
</body>の直前に

<script type="text/javascript">
  window.onload = function(){
    t1 = document.myform.mytext1;
    t2 = document.myform.mytext2;
    scroll(t1, timer1, msg1);
    scroll(t2, timer2, msg2);
  };
</script>
としてみてください

この回答への補足

ありがとうごさいます。。。
いちよう、やってみたのですが、うまくいきません。

ソースの意味がわすらないのでカンなんでが。。。
もしかして、この記述は、「切り替え」ているような感じんまですが、

<INPUT name="mytext" size="20">の表示部分が2つに、別々にほしいのですが、1つしか表示されない感じです。

表示部分が別々で、メッセージも、別のものを表示したいのですが、どうなんでしょうか?
(ちなみに、「1つの表示部分」に、「別々」の表示をしたい。ということではありません)

理解不足なので、うまく、説明できなくて失礼します。<(_ _)>

補足日時:2008/10/19 15:24
    • good
    • 0

関数scrollに引数を持たせて 以下のようにしてみましょう



<SCRIPT language="JavaScript">
<!--
var msg1="★メッセージ1     ";
var msg2="★メッセージ2     ";
function scroll( strMsg ){
  var msg;
  if ( strMsg != undefined ) {
    // 引数が省略された場合 mytextから文字列を取得
    strMsg = document.myform.mytext.value;
  }
  msg = strMsg.substring(1, strMsg.length)+ strMsg.substring(0,1);
  document.myform.mytext.value = msg;
  setTimeout("scroll()",300);
}
//-->

<BODY onLoad="scroll(msg1)">
<CENTER>
<FORM name="myform">
  <INPUT name="mytext" size="20"><br>
  <INPUT type="checkbox" onmousedown="scroll( this.checked ? msg2 : msg1 );">msg1/msg2
</FORM>
</CENTER>
</BODY>
といった具合です

この回答への補足

こんにちわ。(^^;
質問なのですが。。。

なんか、編集画面が表示されなくなってしまったので、確認できないのですが。。。

これは、「一つ」のボックスで、「2種類」のメッセージを切り替える?というものでしょうか? もしかして。。。

もし、そうでしたら、そうではなく、
「★別々」のボックスで、「別」のメッセージを表示したいのですが?
その場合は、どうしたらいいでしょうか?

わかりづらい質問ですが、よろしくお願いいたします。<(_ _)>

補足日時:2008/10/19 13:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!