回答編集履歴

1

動作がCSSでは実現難しかったため変更

2017/06/16 04:45

投稿

kanimaru
kanimaru

スコア1013

test CHANGED
@@ -1,10 +1,12 @@
1
+ >修正、CSSのみでは対応できないので以下のように変更しました。
2
+
1
3
  1.ulのliを1つのUlで囲む
2
4
 
3
- 2.全てのliにクラス名 visible を追加
5
+ 2.5つ目ごとのliにクラス名 _clear を追加 ※ここは最初にスクリプトで行ってもよいかもです
4
6
 
5
- 3.隠す際に visible をremoveClass
7
+ 3.隠す際に _clear をremoveClass
6
8
 
7
- 4.表示する際に visible をaddClass
9
+ 4.表示する際に _clear をaddClass
8
10
 
9
11
 
10
12
 
@@ -16,12 +18,66 @@
16
18
 
17
19
 
18
20
 
21
+
22
+
19
23
  ```CSS
20
24
 
21
- .faq ul .visible:nth-of-type(4n+1){
25
+ ._clear{
22
26
 
23
27
  clear: both;
24
28
 
25
29
  }
26
30
 
27
31
  ```
32
+
33
+ ```javascript
34
+
35
+ if (searchVal.length) {
36
+
37
+ var visibleCount = 0;
38
+
39
+ var clearNumber = 4;
40
+
41
+ for (var i in itemsIndexed) {
42
+
43
+ $item = $items.eq(i);
44
+
45
+ $item.removeClass('_clear');
46
+
47
+ if (itemsIndexed[i].indexOf(searchVal) != -1){
48
+
49
+ $item.removeClass('is-hidden').html($item.html().replace(new RegExp(searchVal + '(?!([^<]+)?>)', 'gi'), '<span class="highlight">$&</span>'));
50
+
51
+ if((visibleCount) % clearNumber==0){
52
+
53
+ $item.addClass('_clear');
54
+
55
+ }
56
+
57
+ visibleCount++;
58
+
59
+ }else{
60
+
61
+
62
+
63
+ $item.addClass('is-hidden');
64
+
65
+ }
66
+
67
+
68
+
69
+ }
70
+
71
+ }
72
+
73
+ else{
74
+
75
+ $items.removeClass('is-hidden');
76
+
77
+ $items.removeClass('_clear');
78
+
79
+ }
80
+
81
+
82
+
83
+ ```