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

回答編集履歴

1

アニメーションありに修正

2018/09/09 12:31

投稿

spookybird
spookybird

スコア1803

answer CHANGED
@@ -8,12 +8,32 @@
8
8
  SlideUl.children('li:first-child').addClass('visible');
9
9
 
10
10
  function slideRight() {
11
- var visibleSlide = SlideUl.children('li.visible');
11
+ var visibleSlide = SlideUl.children('li.visible');
12
12
  var nextSlide = visibleSlide.next();
13
13
  if (!nextSlide.length) nextSlide = SlideUl.children('li:first-child');
14
14
 
15
+ visibleSlide.animate({
16
+ opacity: 0
17
+ }, {
18
+ duration: 1000,
19
+ queue: false,
20
+ complete: function () {
15
- visibleSlide.removeClass('visible');
21
+ visibleSlide.removeClass('visible');
22
+ visibleSlide.css('opacity', '');
23
+ }
24
+ });
25
+
26
+ nextSlide.css('opacity', 0);
16
27
  nextSlide.addClass('visible');
28
+ nextSlide.animate({
29
+ opacity: 1
30
+ }, {
31
+ duration: 1000,
32
+ queue: false,
33
+ complete: function() {
34
+ nextSlide.css('opacity', '');
35
+ }
36
+ })
17
37
  }
18
38
 
19
39
  $('.next').click(slideRight);
@@ -31,4 +51,7 @@
31
51
  #slide li.visible {
32
52
  display: list-item;
33
53
  }
34
- ```
54
+ ```
55
+
56
+ 最初の回答でアニメーション忘れてたので、アニメーションでうっすら切り替わる感じに変えときました。
57
+ ただし「次へ」を連打されたときの考慮まではやってないので、早めに連打したらバグります。