質問編集履歴

5

文言の追加

2017/10/20 17:17

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,9 @@
102
102
 
103
103
 
104
104
 
105
- 部分的な再現は困難とみなし、本当は避けたかったのですが全コードを開示することにしました。コードの記述上まずい点があればご指摘ください。。。
105
+ 部分的な再現は困難とみなし、本当は避けたかったのですが全コードを開示することにしました。コードの記述上まずい点があればご指摘ください。。。改めてよろしくお願いします。m(_ _)m
106
+
107
+
106
108
 
107
109
  変数名(enemyPythonとか)には特に深い理由はないです。。お気になさらず。。(^ ^;
108
110
 

4

追記

2017/10/20 17:17

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
@@ -1 +1 @@
1
- jQuery、.width()、.height()につ
1
+ jQuery、ブラウザで開くたび挙動が安定しな
test CHANGED
@@ -86,6 +86,436 @@
86
86
 
87
87
 
88
88
 
89
+ ##追記2
90
+
91
+
92
+
93
+ この質問の方向性が大きく変わってしまうのですが、`$(hoge).width()`の方でもブラウザをリロードした時に`0`になってしまうことに気づきました。。
94
+
95
+
96
+
97
+ またコードを全く編集しなくても、ブラウザを立ち上げ直したり等を繰り返すうちに直ったり直らなかったりと、やはり挙動が一定にならないです、、(firefoxは一定で、常に望む挙動でした)
98
+
99
+
100
+
101
+ html文書の読み込み順序等が影響しているのでしょうか?
102
+
103
+
104
+
105
+ 部分的な再現は困難とみなし、本当は避けたかったのですが全コードを開示することにしました。コードの記述上まずい点があればご指摘ください。。。
106
+
107
+ 変数名(enemyPythonとか)には特に深い理由はないです。。お気になさらず。。(^ ^;
108
+
109
+
110
+
111
+ ```html
112
+
113
+ <!doctype html>
114
+
115
+ <html>
116
+
117
+ <head>
118
+
119
+ <meta charset="utf-8">
120
+
121
+ <title>submarine</title>
122
+
123
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
124
+
125
+ <script src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script>
126
+
127
+ <script src="./script.js"></script>
128
+
129
+ <link rel="stylesheet" href="./style.css" type="text/css" />
130
+
131
+ </head>
132
+
133
+ <body>
134
+
135
+ <div id="screen">
136
+
137
+ <img id="YSB" src="./images/yellowSubmarine.png" />
138
+
139
+ </div>
140
+
141
+ </body>
142
+
143
+ </html>
144
+
145
+ ```
146
+
147
+
148
+
149
+ ```javascript
150
+
151
+ var YSB;
152
+
153
+ var YSBDir = 1;
154
+
155
+ var YSBh;
156
+
157
+ var YSBw;
158
+
159
+
160
+
161
+ var scrn;
162
+
163
+ var barrett;
164
+
165
+
166
+
167
+ var enemyPython;
168
+
169
+ var intId;
170
+
171
+ var spawn;
172
+
173
+
174
+
175
+ $(function(){
176
+
177
+ YSB = $("#YSB");
178
+
179
+ YSBh = YSB.height()/2;
180
+
181
+ YSBw = YSB.width()/2;
182
+
183
+
184
+
185
+ // ↓該当箇所
186
+
187
+
188
+
189
+ console.log(YSB.height());
190
+
191
+ console.log(YSB.width());
192
+
193
+ console.log($(YSB).height());
194
+
195
+ console.log($(YSB).width());
196
+
197
+
198
+
199
+ // ↑該当箇所
200
+
201
+
202
+
203
+ scrn = $("#screen");
204
+
205
+ barrett = $("<img>");
206
+
207
+ barrett.attr({
208
+
209
+ "src": "./images/barrett.png",
210
+
211
+ "class": "barrett"
212
+
213
+ });
214
+
215
+
216
+
217
+ enemyPython = $("<div>");
218
+
219
+ enemyPython.addClass("python");
220
+
221
+
222
+
223
+ spawn = function(){
224
+
225
+ if(Math.random()<0.5){
226
+
227
+ var x = Math.floor(Math.random()*(window.innerWidth-enemyPython.width()));
228
+
229
+ var y = Math.floor(Math.random()*(window.innerHeight-enemyPython.height()));
230
+
231
+ var animationName = "vibration_right";
232
+
233
+ if(x<window.innerWidth*0.5) animationName = "vibration_left";
234
+
235
+ var eP = enemyPython.clone();
236
+
237
+ eP.css({
238
+
239
+ "top": y+"px",
240
+
241
+ "left": x+"px",
242
+
243
+ "opacity": 0,
244
+
245
+ "animation-name": animationName
246
+
247
+ });
248
+
249
+ scrn.append(eP);
250
+
251
+ eP.animate({
252
+
253
+ "opacity": 1.0
254
+
255
+ },500,"linear");
256
+
257
+ }
258
+
259
+ };
260
+
261
+
262
+
263
+ scrn.on("click",function(e){
264
+
265
+ var toX = e.pageX - YSBh;
266
+
267
+ var toY = e.pageY - YSBw;
268
+
269
+
270
+
271
+ if(YSB.offset().left > toX){
272
+
273
+ YSB.css("animation-name","vibration_left");
274
+
275
+ YSBDir = 1;
276
+
277
+ }else{
278
+
279
+ YSB.css("animation-name","vibration_right");
280
+
281
+ YSBDir = -1;
282
+
283
+ }
284
+
285
+ YSB.animate({
286
+
287
+ "left": toX+"px",
288
+
289
+ "top": toY+"px"
290
+
291
+ },250,"easeOutQuad");
292
+
293
+ });
294
+
295
+
296
+
297
+ YSB.on("click",function(e){
298
+
299
+ e.stopPropagation();
300
+
301
+
302
+
303
+ var b = barrett.clone();
304
+
305
+ b.css({
306
+
307
+ "top": e.pageY+"px",
308
+
309
+ "left": e.pageX+"px"
310
+
311
+ });
312
+
313
+ scrn.append(b);
314
+
315
+ if(YSBDir==1){
316
+
317
+ b.animate({
318
+
319
+ "left": "0px"
320
+
321
+ },250,function(){
322
+
323
+ b.remove();
324
+
325
+ });
326
+
327
+ }else{
328
+
329
+ b.css("transform","scaleX(-1)");
330
+
331
+ b.animate({
332
+
333
+ "left": scrn.width()+"px"
334
+
335
+ },250,function(){
336
+
337
+ b.remove();
338
+
339
+ });
340
+
341
+ }
342
+
343
+ });
344
+
345
+
346
+
347
+ intId = setInterval(spawn,1500);
348
+
349
+ });
350
+
351
+ ```
352
+
353
+ ```css
354
+
355
+ @charset "UTF-8";
356
+
357
+
358
+
359
+ #screen {
360
+
361
+ position: absolute;
362
+
363
+ left: 0px;
364
+
365
+ top: 0px;
366
+
367
+ margin: 0px;
368
+
369
+ padding: 0px;
370
+
371
+ height: 120vh;
372
+
373
+ width: 120vw;
374
+
375
+ background-image: url(./images/marine.jpg);
376
+
377
+ background-position: center center;
378
+
379
+ background-repeat: no-repeat;
380
+
381
+ background-attachment: fixed;
382
+
383
+ background-size: cover;
384
+
385
+ }
386
+
387
+ #YSB {
388
+
389
+ position: absolute;
390
+
391
+ height: 10vw;
392
+
393
+ width: 10vw;
394
+
395
+ left: 45vw;
396
+
397
+ top: calc(50vh - 5vw);
398
+
399
+ z-index: 1;
400
+
401
+
402
+
403
+ animation: vibration_left 500ms ease-in-out 0s infinite alternate none running;
404
+
405
+ }
406
+
407
+
408
+
409
+ @keyframes vibration_left {
410
+
411
+ 0% {
412
+
413
+ transform: translateY(-0.2vh) scaleX(1);
414
+
415
+ }
416
+
417
+ 100% {
418
+
419
+ transform: translateY(0.2vh) scaleX(1);
420
+
421
+ }
422
+
423
+ }
424
+
425
+ @keyframes vibration_right {
426
+
427
+ 0% {
428
+
429
+ transform: translateY(-0.2vh) scaleX(-1);
430
+
431
+ }
432
+
433
+ 100% {
434
+
435
+ transform: translateY(0.2vh) scaleX(-1);
436
+
437
+ }
438
+
439
+ }
440
+
441
+
442
+
443
+ .barrett {
444
+
445
+ position: absolute;
446
+
447
+ height: 32px;
448
+
449
+ width: 32px;
450
+
451
+ }
452
+
453
+
454
+
455
+ .python {
456
+
457
+ position: absolute;
458
+
459
+ height: 10vw;
460
+
461
+ width: 10vw;
462
+
463
+ background-image: url(./images/python_1.png);
464
+
465
+ background-size: contain;
466
+
467
+
468
+
469
+ animation: vibration_left 500ms ease-in-out 0s infinite alternate none running;
470
+
471
+ }
472
+
473
+
474
+
475
+ .crying {
476
+
477
+ background-image: url(./images/python_2.png);
478
+
479
+ animation: rolling 5000ms linear 0s 1 normal none running;
480
+
481
+ }
482
+
483
+
484
+
485
+ @keyframes rolling {
486
+
487
+ 0% {
488
+
489
+ transform: rotate(0deg);
490
+
491
+ }
492
+
493
+ 50% {
494
+
495
+ transform: rotate(180deg);
496
+
497
+ }
498
+
499
+ 100% {
500
+
501
+ transform: rotate(360deg);
502
+
503
+ top: 100vh;
504
+
505
+ }
506
+
507
+ }
508
+
509
+
510
+
511
+ .smiling {
512
+
513
+ background-image: url(./images/python_3.png);
514
+
515
+ }
516
+
517
+ ```
518
+
89
519
  ##
90
520
 
91
521
 

3

文言の追加

2017/10/20 17:06

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
File without changes
test CHANGED
@@ -78,6 +78,10 @@
78
78
 
79
79
 
80
80
 
81
+ こういう挙動になってしまうということはやはりそもそも`hoge.width()`って書くのはよくないってことなのでしょうか?
82
+
83
+
84
+
81
85
  引き続き回答よろしくお願いいたします。m(_ _)m
82
86
 
83
87
 

2

追記

2017/10/20 16:27

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
File without changes
test CHANGED
@@ -66,6 +66,22 @@
66
66
 
67
67
 
68
68
 
69
+ ##追記
70
+
71
+
72
+
73
+ 原因となる動作の一部が判明しましたので追記させてください。
74
+
75
+
76
+
77
+ **ブラウザでリロードを行うと`hoge.width()`の方で`0`になってしまう**みたいでした。ただし上記コードではなく元コードでの確認ですので、やはり他にも原因があるみたいです。
78
+
79
+
80
+
81
+ 引き続き回答よろしくお願いいたします。m(_ _)m
82
+
83
+
84
+
69
85
  ##
70
86
 
71
87
 
@@ -74,4 +90,8 @@
74
90
 
75
91
 
76
92
 
77
- とりあえず上記現象を確認できたブラウザ : MacのSafari ver11.0
93
+ とりあえず上記現象を確認できたブラウザ :
94
+
95
+ - MacのSafari ver11.0
96
+
97
+ - Chrome バージョン61.0.3163.100

1

文言の編集

2017/10/20 16:26

投稿

namnium1125
namnium1125

スコア2043

test CHANGED
File without changes
test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- コメントアウトしたらった直らないで原因箇所を特定しようとしたのですが、全く同一のコードにも関わらず直ったり直らなかったりと不定で(ちなみにキャッシュ等は残っておらず変更はすぐに反映されてます。)、頭がこんがらがってきてしまいました。。
49
+ コメントアウトしるかを試すことで原因箇所を特定しようとしたのですが、全く同一のコードにも関わらず直ったり直らなかったりと不定で(ちなみにキャッシュ等は残っておらず変更はすぐに反映されてます。)、頭がこんがらがってきてしまいました。。
50
50
 
51
51
 
52
52