質問編集履歴

3

全体的に編集

2020/11/04 13:20

投稿

SATSUKI.
SATSUKI.

スコア21

test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,18 @@
1
+ ### 前提
2
+
1
3
  要素が直線的に移動するアニメーションをReactで作ろうとしています。
2
4
 
3
- div.lineanimは画面全体に広がっていて、それをクリックすると、その上をBlockと書かれた100x100pxの箱が左から右に流れるようにしたいです。
5
+ 画面全体に広がっているdiv.lineanimをクリックすると、その上をBlockと書かれた100x100pxの箱が左から右に流れるようにしたいです。
4
6
 
5
7
  アニメーションライブラリは[ReactTransitionGroup](http://reactcommunity.org/react-transition-group/transition)です。`Transition`と`CSSTransition`がありますが、InlineCSSを使いたいので`Transition`の方を使っています。
6
8
 
7
9
 
8
10
 
11
+ ### 発生している問題
12
+
9
- しかし、現状ではクリックしても要素が動きません。onEntering→onEnteredの遷移や`this.state.show`の更新はうまくいっているようなのですが...
13
+ しかし、現状ではクリックしても要素がアニメーションされません。`onEntered`のタイミングでちゃんと画面右側に移動しているのですが、なぜかアニメーションせずにいきなり表示位置が変わります。onEntering→onEnteredの遷移や`this.state.show`の更新はうまくいっているようなのですが...
10
-
14
+
11
- **※下追記あり**
15
+ onEntering→onEnteredの遷移の間隔はちゃんと`this.duration`で指定した待ち時間があるのですが、その間アニメーションせずずっと初期位置に留まったままで、`onEntered`に到達した瞬間に表示位置が変わるという感じです。
12
16
 
13
17
 
14
18
 
@@ -18,7 +22,7 @@
18
22
 
19
23
 
20
24
 
21
- 以下コード
25
+ ### 該当コード
22
26
 
23
27
  ```javascript
24
28
 
@@ -58,7 +62,7 @@
58
62
 
59
63
  opacity: 1,
60
64
 
61
- backgroundColor: 'green',
65
+ backgroundColor: 'red',
62
66
 
63
67
  width: '100px',
64
68
 
@@ -114,8 +118,6 @@
114
118
 
115
119
  console.log("onEntered")
116
120
 
117
- this.setShow(false)
118
-
119
121
  }
120
122
 
121
123
 
@@ -190,7 +192,7 @@
190
192
 
191
193
  .lineanim {
192
194
 
193
- background-color :#26365fc6;
195
+ background-color :"gray";
194
196
 
195
197
  height:100vh;
196
198
 
@@ -199,9 +201,3 @@
199
201
  }
200
202
 
201
203
  ```
202
-
203
-
204
-
205
- ### 追記
206
-
207
- `onEntered`のときに`this.state.show`を`false`に戻さないようにしてみると、`onEntered`のタイミングでちゃんと画面右側に移動しているのですが、なぜかアニメーションせずにいきなり表示位置が変わります。onEntering→onEnteredの遷移の間隔はちゃんと`this.duration`で指定した待ち時間があるのですが、その間アニメーションせずにずっと初期位置に留まったままで、`onEntered`に到達した瞬間に表示位置が変わるという感じです。

2

誤認表記修正

2020/11/04 13:20

投稿

SATSUKI.
SATSUKI.

スコア21

test CHANGED
File without changes
test CHANGED
@@ -204,4 +204,4 @@
204
204
 
205
205
  ### 追記
206
206
 
207
- `onEntered`のときに`this.state.show`を`false`に戻さないようにしてみると、`onEntered`のタイミングでちゃんと画面右側に移動しているのですが、なぜかアニメーションせずにいきなり表示位置が変わります。onEntering→onEnteredの遷移の間隔はちゃんとduration待ち時間があるのですが、その間アニメーションせずにずっと初期位置に留まったままで、`onEntered`に到達した瞬間に表示位置が変わるという感じです。
207
+ `onEntered`のときに`this.state.show`を`false`に戻さないようにしてみると、`onEntered`のタイミングでちゃんと画面右側に移動しているのですが、なぜかアニメーションせずにいきなり表示位置が変わります。onEntering→onEnteredの遷移の間隔はちゃんと`this.duration`で指定した待ち時間があるのですが、その間アニメーションせずにずっと初期位置に留まったままで、`onEntered`に到達した瞬間に表示位置が変わるという感じです。

1

追記

2020/11/04 12:18

投稿

SATSUKI.
SATSUKI.

スコア21

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  しかし、現状ではクリックしても要素が動きません。onEntering→onEnteredの遷移や`this.state.show`の更新はうまくいっているようなのですが...
10
10
 
11
+ **※下に追記あり**
12
+
11
13
 
12
14
 
13
15
  解決につながる方法をご存知でしたら教えていただきたいです。
@@ -197,3 +199,9 @@
197
199
  }
198
200
 
199
201
  ```
202
+
203
+
204
+
205
+ ### 追記
206
+
207
+ `onEntered`のときに`this.state.show`を`false`に戻さないようにしてみると、`onEntered`のタイミングでちゃんと画面右側に移動しているのですが、なぜかアニメーションせずにいきなり表示位置が変わります。onEntering→onEnteredの遷移の間隔はちゃんとduration分待ち時間があるのですが、その間アニメーションせずにずっと初期位置に留まったままで、`onEntered`に到達した瞬間に表示位置が変わるという感じです。