teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追記

2019/11/15 05:35

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -35,6 +35,7 @@
35
35
  const width = 200; //要素の幅
36
36
  const stopTime = 1000; //停車時間
37
37
  const spead = 1; //速さ(小さいと早い)
38
+ const supsp = 1; //速さ(大きいと早い・大きくしすぎるとカクカクになる)
38
39
 
39
40
  const tochu = window.innerWidth / 2 - width / 2;
40
41
  setInterval(function(){
@@ -48,7 +49,7 @@
48
49
  document.getElementById('track').style.left = i - stopTime + 'px';
49
50
  document.getElementById('ushi').style.left = i - stopTime + 'px';
50
51
  }
51
- i += 1;
52
+ i += supsp;
52
53
  }, spead);
53
54
  document.getElementById('ushi').style.left = tochu + 'px';
54
55
  }, loopTime);

3

追記

2019/11/15 05:35

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -30,21 +30,28 @@
30
30
  }
31
31
  ```
32
32
  ```jQuery
33
+
34
+ const loopTime = 10000; //繰り返し時間
35
+ const width = 200; //要素の幅
36
+ const stopTime = 1000; //停車時間
37
+ const spead = 1; //速さ(小さいと早い)
38
+
33
- const tochu = window.innerWidth / 2 - 100;
39
+ const tochu = window.innerWidth / 2 - width / 2;
34
40
  setInterval(function(){
35
- i=-200;
41
+ i= - width;
36
42
  car = setInterval(function(){
37
43
  if(tochu>i){
38
44
  document.getElementById('track').style.left = i + 'px';
39
- } else if(i>window.innerWidth+2000) {
45
+ } else if(i>window.innerWidth+stopTime) {
40
46
  clearInterval(car);
41
- } else if (i>tochu+1000) {
47
+ } else if (i>tochu+stopTime) {
42
- document.getElementById('track').style.left = i - 1000 + 'px';
48
+ document.getElementById('track').style.left = i - stopTime + 'px';
43
- document.getElementById('ushi').style.left = i - 1000 + 'px';
49
+ document.getElementById('ushi').style.left = i - stopTime + 'px';
44
50
  }
45
- i += 4;
51
+ i += 1;
46
- }, 4);
52
+ }, spead);
47
53
  document.getElementById('ushi').style.left = tochu + 'px';
48
- }, 5000);
54
+ }, loopTime);
55
+
49
56
  ```
50
57
  [サンプル](https://codepen.io/asuchi0819/pen/gOOBNKV?editors=0010)

2

追記

2019/11/15 05:32

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -30,9 +30,21 @@
30
30
  }
31
31
  ```
32
32
  ```jQuery
33
- var tochu = $('#ushi').position().left;
33
+ const tochu = window.innerWidth / 2 - 100;
34
+ setInterval(function(){
35
+ i=-200;
36
+ car = setInterval(function(){
37
+ if(tochu>i){
38
+ document.getElementById('track').style.left = i + 'px';
39
+ } else if(i>window.innerWidth+2000) {
40
+ clearInterval(car);
41
+ } else if (i>tochu+1000) {
34
- $('#track').animate({'left':tochu},1000,'swing');
42
+ document.getElementById('track').style.left = i - 1000 + 'px';
35
- $('#track').delay('1000').animate({'left':window.innerWidth},1000,'swing');
43
+ document.getElementById('ushi').style.left = i - 1000 + 'px';
44
+ }
45
+ i += 4;
46
+ }, 4);
36
- $('#ushi').delay('2000').animate({'left':window.innerWidth},1000,'swing');
47
+ document.getElementById('ushi').style.left = tochu + 'px';
48
+ }, 5000);
37
49
  ```
38
50
  [サンプル](https://codepen.io/asuchi0819/pen/gOOBNKV?editors=0010)

1

追記

2019/11/15 02:17

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -1,1 +1,38 @@
1
- この程度でしたらJavaScriptかCSSのkeyframeでできます。(サンプルコードは明日までに提示します
1
+ この程度でしたらJavaScriptかCSSのkeyframeでできます。(サンプルコードは明日までに提示します
2
+
3
+ めんどくさいのでjQueryで書いています
4
+ ```HTML
5
+ <img id=ushi src=>
6
+ <img id=house src=>
7
+ <img id=track src=>
8
+ ```
9
+ ```CSS
10
+ * {
11
+ margin: 0;
12
+ padding: 0
13
+ }
14
+ img {
15
+ position: absolute;
16
+ top: 0;
17
+ left: 0;
18
+ width: 200px
19
+ }
20
+ #track {
21
+ z-index: 100;
22
+ left: -200px
23
+ }
24
+ #ushi {
25
+ z-index: 50;
26
+ left: calc(50vw - 100px)
27
+ }
28
+ #house {
29
+ left: calc(50vw - 100px)
30
+ }
31
+ ```
32
+ ```jQuery
33
+ var tochu = $('#ushi').position().left;
34
+ $('#track').animate({'left':tochu},1000,'swing');
35
+ $('#track').delay('1000').animate({'left':window.innerWidth},1000,'swing');
36
+ $('#ushi').delay('2000').animate({'left':window.innerWidth},1000,'swing');
37
+ ```
38
+ [サンプル](https://codepen.io/asuchi0819/pen/gOOBNKV?editors=0010)