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

回答編集履歴

2

修正

2020/01/10 09:24

投稿

KazuSaka
KazuSaka

スコア640

answer CHANGED
@@ -34,7 +34,7 @@
34
34
  $('.slideSet').animate({'left': '-=500px'}, duration, function(){//画像を左へ1つずらす
35
35
  //アニメーション完了後の処理
36
36
  $(this).append($('.slide:first-child')); //先頭画像を末尾へ移動
37
- $(this).css('left', '-500px'); //位置修正
37
+ $(this).css('left', '-500px'); //位置修正.アニメーション完了時のleftは-1000pxとなっているので、初期位置の-500pxに戻す.
38
38
  });
39
39
  }
40
40
  }

1

2020/01/10 09:23

投稿

KazuSaka
KazuSaka

スコア640

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  意図した動きにならなかった原因は、以下の3点かと思います。
2
- - **$('.slideSet').css('left', -500);** ➡ **'-500px'**とする
2
+ - **$('.slideSet').css('left', -500);** ➡ **'-500px'**とする.
3
- - **$(this).css('left', '-500');** ➡ **'-500px'**とする
3
+ - **$(this).css('left', '-500');** ➡ **'-500px'**とする.
4
- - $(''.sildeSet').animate(... ➡ **'.slideSet'**タイプミス(iとl逆)
4
+ - **$(''.sildeSet').animate(...** ➡ **'.slideSet'**とする.タイプミス(iとl逆)
5
5
 
6
6
  質問者さんの考えた作りであれば、else文は必要ないかと思いますが、どうなんでしょう。
7
7
  表示が終わった要素は子要素の末尾に回してるので、if内の処理だけで実現できているかと思いますが。
@@ -10,7 +10,7 @@
10
10
  私が気になったのは、
11
11
  既に表示されている画像はアニメーションで画面外に消えていくことが目視できるが、画面内に入ってくる画像はアニメーション完了後にしか表示されません。
12
12
  アニメーション開始時点でレンダリングされていない要素はアニメーション中に画面内に現れても、アニメーション終了後にしかレンダリングされないみたいです。
13
- おそらく、質問者さんのスライドショーのイメージは画像が連結している状態で画像が切り替わる動きかとは思いますが。(わざわざ、アニメーションしてるのに、)
13
+ おそらく、質問者さんのスライドショーのイメージは画像が連結している状態で画像が切り替わる動きかとは思いますが。
14
14
  この現象の改善方法はわかりませんでした。
15
15
 
16
16
  以下のコードで画像が順番にループ表示されると思います。