- ベストアンサー
JavaScriptの流れる文字
初めて質問させて頂きます。 JavaScriptで流れる文字を作成し、流すことはできたのですが、文章の一部分がうまく流れず、行ったり来たりしてスムーズになりません。 文章の長さなどは関係あるのでしょうか。 どうすれば、スムーズに流れるようになるのか教えて下さい!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
どんな実装をしたかにもよるわね。 実際のコードを見ないと判断がつかないわ。
その他の回答 (3)
- cyokodog
- ベストアンサー率56% (13/23)
スムーズという言葉が気になったのですが、発想を変えて以下のよう1px単位で位置移動させるというのはいかがでしょう? <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"/> <script> window.onload=function(){ var $=function(id){ return document.getElementById(id) } var container=$('container') var target=$('sample') var startLeft = container.offsetWidth; var endLeft = -target.offsetWidth; target.style.left=(startLeft-100)+'px'; target.style.width=-endLeft+'px'; target.style.position='absolute'; setInterval(function(){ var left = parseInt(target.style.left) target.style.left=((left<endLeft?startLeft:left-1)+'px'); },10); } </script> <style> html,body{ margin:0; } #container{ width:100%; height:1em; overflow:hidden; background:#555; position:relative; } #sample{ color:#fff; } </style> </head> <body> <div id="container"> <span id="sample">あいうえおかいくけこ</span> </div> </body> </html>
- zeeeg
- ベストアンサー率55% (5/9)
これでスムーズになりませんか? (1) 表示させるフォントを等幅フォントにする。 また、メッセージは全角文字(又は半角文字)に統一する。 (2) フォームへの出力は一度に表示させられる文字数に制限する。 例えば、document.fm.txt.value = msg.substring(0, 20); ※蛇足ですが、var msg=msg+msg; の var は要りません。
お礼
お礼が遅くなって、申し訳ございません。 丁寧なご回答ありがとうございます。 参考になりました!!
- askaaska
- ベストアンサー率35% (1455/4149)
普通に動くと思うけど。 もしかしたらテキストフィールドの幅の関係で 錯覚を起こしているだけかもしれないわよ。
お礼
お礼の返信が遅れて申し訳ございません。 ご回答ありがとうごさいます!!
補足
早速ご回答いただきありがとうございます。 何卒初心者なもので、申し訳ございません。 <!--スクリプト1--> <script language="javascript"> <!-- var move = 1; var spd = 400; var m1=" "; var m2=" "; var m3=" "; var m4=" "; var msg=m4+m1+m2+m3; var msg=msg+msg; function scro() { msg=msg.substring(move,msg.length)+msg.substring(0,move); document.fm.txt.value = msg; setTimeout("scro()",spd); } //--> </script> <!--ここまで--> 外部化したJavaScriptのファイルの中に、このようなコードを組み込んでおります。 var m1,var m2,var m3の部分に文章を入れて流しています。 いかがでしょうか?