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

回答編集履歴

1

補足

2018/10/11 10:04

投稿

yeondev
yeondev

スコア198

answer CHANGED
@@ -20,4 +20,35 @@
20
20
  }
21
21
  ```
22
22
 
23
- こういうのかなと思いますがいかがでしょうか?
23
+ こういうのかなと思いますがいかがでしょうか?
24
+
25
+
26
+ +追加
27
+
28
+
29
+ スムーズにするなら、こういう感じらしいです。
30
+ ```javascript
31
+ function doHighlight() {
32
+ var word = $("#word").val()
33
+ .replace(/^\s+|\s+$/g, "") //前後の空白を除去(gオプションは繰り返し)
34
+ .replace(/\s+/g, " ") //連続する空白を1つに
35
+ .split(" ");
36
+ for (i in word) { //要素数ぶんループ(iには添字が入る)
37
+ if (word[i] != "") { //空文字であれば処理しない
38
+ $("#target").removeHighlight(); // 追加:再検索の時、highlightの再設定(いらなかったら消してください。検索を続けて2回すると動かない問題がありましたので
39
+ $("#target").highlight(word[i]); //#target内のテキストに対し、処理中の語句でハイライト
40
+
41
+ var ypos = $(".highlight").offset().top;
42
+      // window.scrollTo(0 /* 横 */, ypos /* 縦 */); // そこまでスクロール
43
+ // 修正↓
44
+ window.scrollTo({
45
+ left: 0 /* 横 */,
46
+ top: ypos /* 縦 */,
47
+ behavior: "smooth" /* スムーズ */
48
+ });
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ [参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo)