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

回答編集履歴

2

コメントを受けて追記

2018/12/05 11:21

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37511

answer CHANGED
@@ -18,4 +18,23 @@
18
18
       newEL.animate({ opacity: 1 }, 1100);
19
19
  });
20
20
  });
21
+ ```
22
+
23
+ ### コメントを受けて追記
24
+ 遅延時間を累計すればいいと思いますよ。
25
+ ```js
26
+ $(function() {
27
+ var $allMsg = $('h1');
28
+ var $wordList = $('h1').html().split("");
29
+ $('h1').text("");
30
+ var i = 0;
31
+ $.each($wordList, function(idx, elem) {
32
+ var newEL = $("<span/>").text(elem).css({ opacity: 0 });
33
+ newEL.appendTo($allMsg);
34
+ i += 100;
35
+ if (elem=='、') i += 1000;
36
+ newEL.delay(i);
37
+      newEL.animate({ opacity: 1 }, 1100);
38
+ });
39
+ });
21
40
  ```

1

コメントを受けて追記

2018/12/05 11:21

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37511

answer CHANGED
@@ -1,3 +1,21 @@
1
1
  ↓ここが参考になるのでは。
2
2
  [テキストを1文字ずつフェードインさせる方法 - Qiita](https://qiita.com/Simmon/items/7ff63e61646888c8dcf3)
3
- `elem`に文字が入っていると思うのですが、何か障害がありますか?
3
+ `elem`に文字が入っていると思うのですが、何か障害がありますか?
4
+
5
+ ### コメントを受けて追記
6
+ `delay()`メソッドは、カッコの中の数字分だけアニメーションを遅らせる効果があります。
7
+ なので、句読点の場合だけ遅らせるには、カッコの中の数字を大きくすればいいです。
8
+ ```js
9
+ $(function() {
10
+ var $allMsg = $('h1');
11
+ var $wordList = $('h1').html().split("");
12
+ $('h1').text("");
13
+ $.each($wordList, function(idx, elem) {
14
+ var newEL = $("<span/>").text(elem).css({ opacity: 0 });
15
+ newEL.appendTo($allMsg);
16
+ newEL.delay(idx * 100);
17
+ if (elem=='、') newEL.delay(1000); // ここ
18
+      newEL.animate({ opacity: 1 }, 1100);
19
+ });
20
+ });
21
+ ```