回答編集履歴

5

ランダム配置のサンプルコードを追加

2016/02/17 03:23

投稿

yamato_hikawa
yamato_hikawa

スコア2092

test CHANGED
@@ -23,3 +23,137 @@
23
23
  min から max までの乱整数を返す関数を流用すれば、任意の幅のランダム値が作れるはずです。
24
24
 
25
25
  [Math.random()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random)
26
+
27
+
28
+
29
+ ランダム配置のサンプルコードです。
30
+
31
+ 幅960、高さ500の領域の中に収めるための座標の最小値と最大値についてですが、
32
+
33
+
34
+
35
+ top: 0〜500
36
+
37
+ left: 0〜960
38
+
39
+
40
+
41
+ となります。
42
+
43
+ なので、Math.randomのサンプルにある関数に対して、この範囲内の数値をランダムな数として出してくれるように引数を設定して実行すればいいです。
44
+
45
+
46
+
47
+ ここまでの処理では「被らないようにしたい」という点は満たしていません。
48
+
49
+ それについては、配置した後で「被っているかどうか」を判定し、「被っている場合はどうするか」という処理を追記する必要があります。
50
+
51
+
52
+
53
+ ```html
54
+
55
+ <div class="container">
56
+
57
+ <ul class="wordList">
58
+
59
+ <li>セリフサンプル1</li>
60
+
61
+ <li>セリフサンプル2</li>
62
+
63
+ </ul>
64
+
65
+ </div>
66
+
67
+ ```
68
+
69
+
70
+
71
+ ```css
72
+
73
+ .container {
74
+
75
+ margin: 0 auto;
76
+
77
+ width: 960px;
78
+
79
+ height: 500px;
80
+
81
+ background: #CCC;
82
+
83
+ position: relative;
84
+
85
+ }
86
+
87
+
88
+
89
+ .wordList > li {
90
+
91
+ background: #000000;
92
+
93
+ padding: 20px;
94
+
95
+ text-align: center;
96
+
97
+ color: #ffffff;
98
+
99
+ position: absolute;
100
+
101
+ }
102
+
103
+ ```
104
+
105
+
106
+
107
+ ```javascript
108
+
109
+ // 引数で渡した範囲内のランダムな整数を生成するための関数
110
+
111
+ var getRandomInt = function(min, max) {
112
+
113
+ return Math.floor(Math.random() * (max - min + 1)) + min;
114
+
115
+ };
116
+
117
+
118
+
119
+ // 要素の取得
120
+
121
+ var $container = $('.container'),
122
+
123
+ $wordList = $('.wordList').find('li'),
124
+
125
+ containerWidth = $container.width(),
126
+
127
+ containerHeight = $container.height();
128
+
129
+
130
+
131
+ console.log(containerWidth, containerHeight) // 960, 500
132
+
133
+
134
+
135
+ // liそれぞれをランダムに配置
136
+
137
+ $.map($wordList, function(item, index) {
138
+
139
+ var $item = $(item), // wordListのli要素が1番目から順に入ってきます
140
+
141
+ topPos = getRandomInt(0, containerHeight), // 0〜500の間でtopの座標を取得
142
+
143
+ leftPos = getRandomInt(0, containerWidth); // 0〜960の間でleft の座標を取得
144
+
145
+
146
+
147
+ // 取得したランダム座標を設定
148
+
149
+ $item.css({
150
+
151
+ top: topPos,
152
+
153
+ left: leftPos
154
+
155
+ });
156
+
157
+ });
158
+
159
+ ```

4

ランダム値の作り方

2016/02/17 03:23

投稿

yamato_hikawa
yamato_hikawa

スコア2092

test CHANGED
@@ -15,3 +15,11 @@
15
15
 
16
16
 
17
17
  まずやるべきは、HTMLのコーディングと吹き出し部分のCSS設定ですね。
18
+
19
+
20
+
21
+ JSにおけるランダム値の作り方はこちらを参考にどうぞ。
22
+
23
+ min から max までの乱整数を返す関数を流用すれば、任意の幅のランダム値が作れるはずです。
24
+
25
+ [Math.random()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random)

3

修正

2016/02/15 15:48

投稿

yamato_hikawa
yamato_hikawa

スコア2092

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  1パターンだけだと統制が取れすぎるので、数パターン分設定を作ります。
6
6
 
7
- - ランダム配置のJS設定(divに対してCSSのleft, top値をランダムで設定する)
7
+ - ランダム配置のJS設定(それぞれの吹き出しに対してCSSのleft, top値をランダムで設定する)
8
8
 
9
9
 
10
10
 

2

追記

2016/02/15 13:25

投稿

yamato_hikawa
yamato_hikawa

スコア2092

test CHANGED
@@ -11,3 +11,7 @@
11
11
  基本的にはこれらを1つ1つ片付けてゆけば出来ると思います。
12
12
 
13
13
  プラグインはjQueryだけで充分かもしれません。
14
+
15
+
16
+
17
+ まずやるべきは、HTMLのコーディングと吹き出し部分のCSS設定ですね。

1

修正

2016/02/15 13:24

投稿

yamato_hikawa
yamato_hikawa

スコア2092

test CHANGED
@@ -1,6 +1,8 @@
1
1
  - ちらす部分の基本的なCSS設定(position:absoluteとか)
2
2
 
3
- - ふわふわさせる部分のアニメーション設定(上下動でよければCSS AnimationやCSS Transition)で出来そう。1パターンだけだと統制が取れすぎるの、数パターン分設定を作りま
3
+ - ふわふわさせる部分のアニメーション設定(上下動でよければCSS AnimationやCSS Transition)で出来そうです
4
+
5
+ 1パターンだけだと統制が取れすぎるので、数パターン分設定を作ります。
4
6
 
5
7
  - ランダム配置のJS設定(divに対してCSSのleft, top値をランダムで設定する)
6
8