参考サイト:http://peacepopo.net/blog-entry-194.html
デモ:http://peacepopo.net/wp-content/uploads/ftp/194/ …
上記のサイト様の様に縦横ハイライトさせたいのですが、
TABLEにrowspanが入っていると、rowspanのとなりの一番上のセルを
マウスオーバーした際に縱のハイライトがずれてしまいます。
過去の質問の中に近い物は見つけたのですがいまいち適用できません。
http://qa.itmedia.co.jp/qa6415069.html
なにか別の良い方法があればご伝授御願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは
No1様もおっしゃっていますように、rowspanやcolspanが含まれると、マークアップの構造と行、列の関係は一致しなくなります。
行に関しては、tr要素があるので多少なりとも関係を維持できていますが、列に関してはまるっきりなので、文書構造からは判断できなくなりますね。
表全体の構成を解析しておいて位置関係を計算するか、あるいは、レイアウトされた結果から判断するしかないように思います。
一方で、どのようなルールになさりたいのかについては、ご質問文に書いてないのでわかりませんが、とりあえず似たものとして、エクセルの選択に近い感じで考えてみました。
・・とは言え、選択ではなくてmouseoverなので印象は少々違いますが。
以下は、レイアウトされた結果の位置から判断する方法での一例です。
ルールとして違うものを適用なさりたい場合は、判断している部分(if~の部分)を修正すれば可能と思います。
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<style type="text/css">
td { width:2em; height:1.2em; }
td.active { background-color: #FDA; }
td.relative { background-color: #FFC; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.2. …
</head>
<body>
<table id="test" border="1">
<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td>
<td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr>
<tr><td>11</td><td>12</td><td colspan=4>13</td>
<td>17</td><td rowspan=3>18</td><td>19</td><td>20</td></tr>
<tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td>
<td>26</td><td>27</td><td>29</td><td>30</td></tr>
<tr><td>31</td><td rowspan=2 colspan=2>32</td><td>34</td>
<td>35</td><td>36</td><td>37</td><td>39</td><td>40</td></tr>
<tr><td>41</td><td>44</td><td>45</td>
<td colspan=3>46</td><td>49</td><td>50</td></tr>
<tr><td>51</td><td>52</td><td>53</td><td>54</td><td>55</td>
<td>56</td><td>57</td><td>58</td><td>59</td><td>60</td></tr>
</table>
<script type="text/javascript">
var tbl = $("#test"), tds = $("td", tbl);
tbl.on("mouseenter", "td", function(){
var t = $(this), o = t.offset();
var x1 = o.left, x2 = x1 + t.width();
var y1 = o.top, y2 = y1 + t.height();
for(var i=0; i<tds.length; i++){
var e = tds.eq(i), o = e.offset();
var x = o.left; y = o.top;
if((x1<=x && x<x2) || (y1<=y && y<y2)) e.addClass("relative");
}
t.removeClass("relative").addClass("active");
}).on("mouseleave", "td", function(){
$("td", tbl).removeClass("active").removeClass("relative");
});
</script>
</body>
</html>
No.1
- 回答日時:
答えは「できない」です。
<table border>
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr><td>5</td><td rowspan=2>6</td><td>7</td><td>8</td></tr>
<tr><td>9</td><td rowspan=2>10</td><td>11</td></tr>
<tr><td>12</td><td>13</td><td>14</td></tr>
</table>
上記、6や10のようなズレが想定されるので相関関係がおかしくなるので
逆に、このような例外をどうするかきちんと仕様をきめればやりようはあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Excel(エクセル) なぜか正常にマクロが動いていない? 1 2022/11/03 07:56
- CPU・メモリ・マザーボード emachines eme732z f22bというパソコンのCPU交換についてです。 CPU Pen 3 2022/08/25 22:53
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定<table>内の<td>の色を変える
-
チェックボックスにチェックが...
-
セルをドラッグで選択するときに、
-
JavaScriptで特定のtdタグにcla...
-
特定の文字列を挿入
-
ハイパーリンクを別ウインドウ...
-
一覧から選択した行の行番号を...
-
プルダウンで選択すると、DBの...
-
tableの任意行にfocusをあてる
-
「オブジェクトは、このプロパ...
-
テーブルの変数について
-
IE以外でdisplay:noneで隠した...
-
テーブルで複数行をまとめて非...
-
jspでのArrayListの値の表示
-
JSで、テーブルのある行のみ、...
-
javascript クリックすると、あ...
-
jQueryでクリックされたテーブ...
-
セルをクリックして文字列をコ...
-
Selenium.ChromeDriverの使い方...
-
iframeの内のTable(rowspan有り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ハイパーリンクを別ウインドウ...
-
特定<table>内の<td>の色を変える
-
JavaScriptで特定のtdタグにcla...
-
プルダウンで選択すると、DBの...
-
マウスをブラウザの外に出した...
-
至急!GetElementById でtdの...
-
一覧から選択した行の行番号を...
-
JavaScriptでテーブルの行入れ替え
-
【UWSC】HTML内のある部分を抽...
-
tableの任意行にfocusをあてる
-
チェックボックスにチェックが...
-
テーブルの変数について
-
スクロールバーの表示位置を変...
-
Excelで作ったhtmlファイルのサ...
-
Selenium.ChromeDriverの使い方...
-
特定の文字列を挿入
-
javascript クリックすると、あ...
-
javascriptでボタンを押すたび...
-
テーブルで複数行をまとめて非...
-
クリックされた罫表セルの行番...
おすすめ情報