回答編集履歴

1

補足

2018/10/11 10:04

投稿

yeondev
yeondev

スコア198

test CHANGED
@@ -43,3 +43,65 @@
43
43
 
44
44
 
45
45
  こういうのかなと思いますがいかがでしょうか?
46
+
47
+
48
+
49
+
50
+
51
+ +追加
52
+
53
+
54
+
55
+
56
+
57
+ スムーズにするなら、こういう感じらしいです。
58
+
59
+ ```javascript
60
+
61
+ function doHighlight() {
62
+
63
+ var word = $("#word").val()
64
+
65
+ .replace(/^\s+|\s+$/g, "") //前後の空白を除去(gオプションは繰り返し)
66
+
67
+ .replace(/\s+/g, " ") //連続する空白を1つに
68
+
69
+ .split(" ");
70
+
71
+ for (i in word) { //要素数ぶんループ(iには添字が入る)
72
+
73
+ if (word[i] != "") { //空文字であれば処理しない
74
+
75
+ $("#target").removeHighlight(); // 追加:再検索の時、highlightの再設定(いらなかったら消してください。検索を続けて2回すると動かない問題がありましたので
76
+
77
+ $("#target").highlight(word[i]); //#target内のテキストに対し、処理中の語句でハイライト
78
+
79
+
80
+
81
+ var ypos = $(".highlight").offset().top;
82
+
83
+      // window.scrollTo(0 /* 横 */, ypos /* 縦 */); // そこまでスクロール
84
+
85
+ // 修正↓
86
+
87
+ window.scrollTo({
88
+
89
+ left: 0 /* 横 */,
90
+
91
+ top: ypos /* 縦 */,
92
+
93
+ behavior: "smooth" /* スムーズ */
94
+
95
+ });
96
+
97
+ }
98
+
99
+ }
100
+
101
+ }
102
+
103
+ ```
104
+
105
+
106
+
107
+ [参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo)