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

回答編集履歴

3

最終コード

2017/03/31 06:32

投稿

退会済みユーザー
answer CHANGED
@@ -2,6 +2,14 @@
2
2
  コード全体を「3つ」に分けて提示されているので、
3
3
  試しに下記の様に配置してみました。
4
4
 
5
+ 皆様の回答・ご指摘より`下記コードに修正`することで、小生も
6
+ - 縦列空色
7
+ - 横列空色
8
+ - 十字空色
9
+
10
+ となる様になりました。
11
+
12
+ `前言撤回(ここから):`
5
13
  『出来てる』と言われている表示動作と、下記コードの表示動作が一致しません。
6
14
 
7
15
  下記のコードだと『選択したセルの背景のみが空色になる』です。
@@ -15,13 +23,10 @@
15
23
  が出来ません。
16
24
  taqmさんのコードで横軸の背景色は空色になったので、もし、縦軸も出来ているのなら、abiscoaさんの希望がかなったことになります。
17
25
  みなさんは、縦軸も空色になっていますでしょうか?
18
- `(ここまで)`
26
+ `追伸(ここまで)`
27
+ `前言撤回(ここまで`
19
28
 
20
29
  ```
21
- <!DOCTYPE html>
22
- <html lang="ja">
23
- <head>
24
- <meta charset="utf-8">
25
30
  <title>CSS</title>
26
31
  <style>
27
32
  .matrix .ttl { background:#f0908d; }
@@ -41,82 +46,25 @@
41
46
  .matrix tr:hover td {
42
47
  background:#dff1f4!important;
43
48
  }
49
+ </style>
44
- <script type="text/javascript" src="jquery-3.2.0.min.js">
50
+ <script type="text/javascript" src="jquery-3.2.0.min.js"></script>
51
+ <script type="text/javascript">
45
52
  <!--
46
- $(function (){
53
+ $(function() {
47
-
48
- // 表頭
49
- $('.matrix th').on({'mouseenter': function (){
54
+ $('.matrix').find('th, td').on('mouseenter', function() {
50
-
51
- // マトリクスの表が何行あるかを取得
52
- var matrix_list = $('.matrix th').length;
53
-
54
- // マウスカーソルがのっているセルにClassを追加
55
- $(this).addClass('cursor');
56
-
57
- // マウスカーソルがのっているセルが左から何番目かを取得
55
+ // マウスカーソルがのっているセルが左から何番目かを取得
58
- var cursor = $(this).parent().find('th').index(this);
56
+ var idx = $(this).parent().find('th, td').index(this);
59
-
60
- // マウスカーソルがのっているセルが左端でない場合
61
- if(0 < cursor){
57
+ if (idx <= 0) return;
62
-
63
- // マウスカーソルがのっているセルの列に
64
- for(var i=0; i<matrix_list; i++){
65
-
66
- // Classを追加
67
- $('.matrix tbody tr').eq(i).children('td').eq(cursor).addClass('cursor');
58
+ var s = '.matrix tr > *:nth-of-type(' +(idx+1)+ ')';
68
-
59
+ $(s).addClass('cursor');
69
- }
60
+ })
70
-
71
- }
72
-
73
- // マウスカーソルが外れた場合
74
- }, 'mouseleave':function (){
61
+ .on('mouseleave', function() {
75
-
76
- // Classを全て削除
62
+ // Classを全て削除
77
- $('.matrix th, .matrix td').removeClass('cursor');
63
+ $('.matrix *.cursor').removeClass('cursor');
78
-
79
- }
80
-
81
- });
64
+ });
82
-
83
- // 表側
84
- $('.matrix td').on({'mouseenter': function (){
85
-
86
- // マトリクスの表が何行あるかを取得
87
- var matrix_list = $('.matrix td').length;
88
-
89
- // マウスカーソルがのっているセルにClassを追加
90
- $(this).addClass('cursor');
91
-
92
- // マウスカーソルがのっているセルが左から何番目かを取得
93
- var cursor = $(this).parent().find('td').index(this);
94
-
95
- // マウスカーソルがのっているセルが左端でない場合
96
-
97
- // マウスカーソルがのっているセルの列に
98
- for(var i=0; i<matrix_list; i++){
99
-
100
- // Classを追加
101
- $('.matrix tr').eq(i).children('td').eq(cursor).addClass('cursor');
102
-
103
- }
104
-
105
-
106
- // マウスカーソルが外れた場合
107
- }, 'mouseleave':function (){
108
-
109
- // Classを全て削除
110
- $('.matrix tr, .matrix td').removeClass('cursor');
111
-
112
- }
113
-
114
- });
115
-
116
65
  });
117
66
  // -->
118
67
  </script>
119
- </style>
120
68
  </head>
121
69
 
122
70
 
@@ -153,4 +101,5 @@
153
101
  </table>
154
102
  </div>
155
103
 
104
+
156
105
  ```

2

修正

2017/03/31 06:32

投稿

退会済みユーザー
answer CHANGED
@@ -37,7 +37,11 @@
37
37
 
38
38
  .matrix th:hover, .matrix td:hover { background:#dff1f4; }
39
39
  .matrix .cursor { background:#dff1f4!important; }
40
+ .matrix .cursor,
41
+ .matrix tr:hover td {
42
+ background:#dff1f4!important;
43
+ }
40
- <script type="text/javascript">
44
+ <script type="text/javascript" src="jquery-3.2.0.min.js">
41
45
  <!--
42
46
  $(function (){
43
47
 

1

追伸

2017/03/30 05:59

投稿

退会済みユーザー
answer CHANGED
@@ -8,7 +8,15 @@
8
8
 
9
9
  分割せずにコード全体を「1つ」で提示してみてください。
10
10
 
11
+ `追伸(ここから):`
12
+ 小生の手元では
13
+ > ・表頭(選択肢1~5)にマウスオンした際の背景色の変更(=縦軸はできている)
11
14
 
15
+ が出来ません。
16
+ taqmさんのコードで横軸の背景色は空色になったので、もし、縦軸も出来ているのなら、abiscoaさんの希望がかなったことになります。
17
+ みなさんは、縦軸も空色になっていますでしょうか?
18
+ `(ここまで)`
19
+
12
20
  ```
13
21
  <!DOCTYPE html>
14
22
  <html lang="ja">