![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Javascriptで文字列を順番に表示し、そのスタート地点を任意にしたいのです。
http://oshiete.goo.ne.jp/qa/2200463.html
こちらのページを参考に、アクセス毎に順番に表示をするページを作成しております。
このリストの、スタート地点をランダムにする改変はできますでしょうか。
本来の目的は、複数設定した文字列をランダムに、しかし一周して全ての文字列を表示し終わるまでは重複しないものを求めていたのですが、検索が下手なのか、探し当てることができませんでした。
そこで、順番に表示されるもののスタート地点をランダムにすることはできないものかと思ったのですが……
どちらでも結構ですので、有識者様、何とぞ宜しくお願いいたします。
No.3ベストアンサー
- 回答日時:
#2のかたと考え方は同じです。
元のページの
─────────────────
var imgNo = 0;
//以下、画像のリスト
var imgList = new Array;
imgList[0] = '~/imgA.gif';
imgList[1] = '~/imgB.png';
imgList[2] = '~/imgX.jpg';
─────────────────
を
─────────────────
//以下、画像のリスト
var imgList = new Array;
imgList[0] = '~/imgA.gif';
imgList[1] = '~/imgB.png';
imgList[2] = '~/imgX.jpg';
var imgNo = Math.round(Math.random()*(imgList.length));
─────────────────
に変えれば動きませんか?
参考:http://tokyo.cool.ne.jp/mitchy2/area2/js/js_memo …
尚、JavaScriptはHTML/CSSと違い、(軽量とは言え)プログラミング言語ですから、
確かに敷居は高いです。
ですので、はじめはコピペで良いと思います。
けれども慣れてきたら、少しずつソースの意味を理解できるよう読み込んでみてください。
はじめのうちは大変ですが、いずれすいすい上達できるようになりますよ。
がんばってください!
サンプルのご提示、大変恐縮です。とっても嬉しいですが、
stuff_ppo様にお手間をおかけしまして心苦しいです。申し訳ありません。
ありがとうございます。
改変して頂いたものを見ると、ここ二日間わたしが最初っから見当違いな事を
しておりました事がわかります。
仰る通り、基本や使い方すら分らない癖に、改変の仕方を教えて下さいというのは
無知でありました。
htmlもcssも我流で学んだのだし、と力ずくで手を出したのが無謀だったです。
No.2
- 回答日時:
>Javascriptで文字列を順番に表示し、~
というのが、ある文字列から1文字ずつ表示していく時のスタート位置の意味なのか、複数ある文字列を順番に表示する時のスタート位置なのかよくわかりませんが、いずれにしろ全体の数に対して乱数で決めてあげれば良いだけのように思われます。
0~1(1未満)の乱数が Math.random() で得られますので…
一つの文字列の場合(=変数strとして)、文字数はstr.lengthですから Math.floor(Math.random() * str.length) で計算した文字をスタートにすればよろしいかと。
複数の文字列が配列に入っているのなら(=配列array_strとして)、同様に Math.floor(Math.random() * array_str.length)でインデックス値を求めて、そこからスタートすることにすればよろしいかと。(終わりの判定にちょっと工夫がいるかも)
他にも、配列全体を並べ変えしてしまう(ランダムソート)という方法も考えられます。
(この場合は順序も変わってしまいますが…)
ご指南ありがとうございます。先日頂きましたSAYKA様のご助言を元にぐぐりつつ改造を行っておりますが、あまり芳しくなく……
fujillin様に頂きましたご助言と合せてもうちょっとがんばってみます!
No.1
- 回答日時:
とりあえずランダムの文字列を作るか、ランダム種を一定にしてかき回す(種が同じなら同じ乱数が出るのを利用した手抜きランダム文字列生成)
で その文字列の文字数を基に、カウンタの数を文字数で割った「余り」の数値の位置の文字を文字列から取り出す
と 文で説明すると そんな感じ。
文字列自体が「単語」で複数用意してあるなら文字数ではなくて語数になるだけ。
前者なら文字列の検索系、後者なら配列の操作。
剰余は % ・・・かな。modだったらごめん
いち早いお返事をありがとうございました。
折角ご指南賜っておきましてお恥ずかしい話なのですが、
わたくしにとってはお話高度過ぎてすぐの理解ができません……
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
undefinedを表示させない方法は...
-
JavaScriptからPHPに配列を渡す...
-
Perlの配列をJavaScriptに渡せ...
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
javascript 変数名の連結をしたい
-
javascriptで行を抽出したいです。
-
C#テキストボックスの文字を配...
-
配列を作って総当たりで距離を...
-
順列生成アルゴリズムについて...
-
JSON.parse取得結果を必ずJavaS...
-
関数でy=g(x)のgとは何の略です...
-
functionから別のfunctionを実...
-
JAVASCRIPTで万年カレンダーを...
-
Coinmarketcap api
-
FireFoxのjavascriptで自動でキ...
-
JavaScriptでテーブル内?に矢...
-
ジェネレーターの作り方
-
Null またはオブジェクトではあ...
-
HTMLで作った時報アプリが動き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
-
二次元配列を使って順位をだす...
-
javascript 変数名の連結をしたい
-
undefinedを表示させない方法は...
-
javascriptで行を抽出したいです。
-
javascriptで入力フォームに日...
-
JavaScriptにおける[] とか :...
-
Perlの配列をJavaScriptに渡せ...
-
HTMLで誕生石と星座をアラート...
-
順列生成アルゴリズムについて...
-
この配列は何?
-
WSH(Jscript)でファイル一覧
-
フォーム入力値の重複チェック
-
読み込んだテキストファイルの...
-
[JS] setAttributeで保存される...
-
オブジェクトから任意のプロパ...
-
xmlの値の取得等について。
-
javascript 省略した記述と思わ...
おすすめ情報