
7×7のセルをドラッグで選択をするときに、選択できない場所を作りたいと思っているのですが、どのようにすればいいのでしょうか?
ネット上にあるサンプルでは画像の(0、0)のセルから選択できるのですが、これを(1,2)を選択できるセルの開始点として5×6の範囲で選択できるようにしたいと思っています。
</tytle>までのひながた以降のコードです。
わかる方よろしくお願いします。
<style type="text/css">
html, body{
margin:0px;
}
table{
-moz-user-select:none;
-khtml-user-select:none;
user-select:none;
width:500px;
height:500px;
}
table, td, th{
margin:10px;
border-style:solid;
border-color:black;
border-width:1px;
}
</style>
<script type="text/javascript">
var startCell = null;
//マウスダウンのイベント処理
function mouseDown(table, e){
if (!e) var e = window.event;
startCell = e.srcElement? e.srcElement: e.target;
if(startCell.tagName != "TD"){
startCell = null;
return;
}
mouseMove(table, e);
}
//マウスアップのイベント処理
function mouseUp(table, e){
if (!e) var e = window.event;
var endCell = e.srcElement?e.srcElement:e.target;
if(!(endCell.tagName=="TD" && startCell))
return false;
//セルの位置を取得
var from = getCellPos(table, startCell);
var to = getCellPos(table, endCell);
if(!from || !to)
return false;
//mouseMoveで選択状態表示の更新をさせないようにする
startCell = null;
//ここに選択後の処理を書く
alert("("+from.col+", "+from.row+") -> ("+to.col+", "+to.row+")");
}
//マウス移動のイベント処理
function mouseMove(table, e){
if (!e) var e = window.event;
var endCell = e.srcElement?e.srcElement:e.target;
if(!(endCell.tagName=="TD" && startCell))
return false;
//セルの位置を取得
var from = getCellPos(table, startCell);
var to = getCellPos(table, endCell);
if(!from || !to)
return false;
//色を変更
var x, y, cells;
for(y=0; y<table.rows.length; y++){
row = table.rows.item(y);
for(x=0; x<row.cells.length; x++){
if((from.row-y)*(y-to.row)>=0 && (from.col-x)*(x-to.col)>=0)
row.cells.item(x).style.backgroundColor = "#ffdddd";//選択状態の色
else
row.cells.item(x).style.backgroundColor = "transparent";//未選択状態の色
}
}
}
//tableの中のcellの位置を取得する
function getCellPos(table, cell){
var pos = new Object();
if(cell.nodeName == "TD"){
var x, y, cells;
for(y=0; y<table.rows.length; y++){
row = table.rows.item(y);
for(x=0; x<row.cells.length; x++){
if(row.cells.item(x) == cell){
pos.row = y;
pos.col = x;
return pos;
}
}
}
}
return null;
}
</script>
</head>
<body><!-- Google Analytics Start -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-9296140-1");
pageTracker._trackPageview();
} catch(err) {}
</script>
<!-- Google Analytics End -->
<table onmousedown="mouseDown(this, event); return false;" onmouseup="mouseUp(this, event);" onmousemove="mouseMove(this, event); return false;">
<tr>
<td>(0,0)</td><td>(1,0)</td><td>(2,0)</td><td>(3,0)</td><td>(4,0)</td><td>(5,0)</td><td>(6,0)</td>
</tr>
<tr>
<td>(0,1)</td><td>(1,1)</td><td>(2,1)</td><td>(3,1)</td><td>(4,1)</td><td>(5,1)</td><td>(6,1)</td>
</tr>
<tr>
<td>(0,2)</td><td>(1,2)</td><td>(2,2)</td><td>(3,2)</td><td>(4,2)</td><td>(5,2)</td><td>(6,2)</td>
</tr>
<tr>
<td>(0,3)</td><td>(1,3)</td><td>(2,3)</td><td>(3,3)</td><td>(4,3)</td><td>(5,3)</td><td>(6,3)</td>
</tr>
<tr>
<td>(0,4)</td><td>(1,4)</td><td>(2,4)</td><td>(3,4)</td><td>(4,4)</td><td>(5,4)</td><td>(6,4)</td>
</tr>
<tr>
<td>(0,5)</td><td>(1,5)</td><td>(2,5)</td><td>(3,5)</td><td>(4,5)</td><td>(5,5)</td><td>(6,5)</td>
</tr>
<tr>
<td>(0,6)</td><td>(1,6)</td><td>(2,6)</td><td>(3,6)</td><td>(4,6)</td><td>(5,6)</td><td>(6,6)</td>
</tr>
</table>
</body>
</html>

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!GetElementById でtdの...
-
テーブルのセル数取得
-
JavaScriptでテーブルの行入れ替え
-
プルダウンで選択すると、DBの...
-
jQueryのプラグイン「Tablesort...
-
jquery datatablesを使用 イン...
-
[Javascript]セル内の文字列の...
-
セルをドラッグで選択するときに、
-
Select ボックスで選択した値を...
-
return trueとreturn falseの用...
-
Selectボックスの幅を自動で広...
-
onchangeイベントを強制的に発...
-
プルダウンで選択した項目にあ...
-
ラジオボタンにタブインデック...
-
ブラウザの外にあるマウスの情...
-
TextBoxに半角数字以外を入れた...
-
【掲示板の機能】投稿時にサイ...
-
RegularExpressionValidatorの...
-
【javascript・PHP】プルダウン...
-
javascriptで画像をテーブルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンで選択すると、DBの...
-
ハイパーリンクを別ウインドウ...
-
特定<table>内の<td>の色を変える
-
JavaScriptで特定のtdタグにcla...
-
JavaScriptでテーブルの行入れ替え
-
javascriptで質問です。 displa...
-
クリックされた罫表セルの行番...
-
jsで質問です。 displayプロパ...
-
JavaScriptでテーブルをクリッ...
-
テーブル内に表示されている数...
-
jqueryとscriptでTABLEのセルを...
-
tableの任意行にfocusをあてる
-
スクロールバーの表示位置を変...
-
Selenium.ChromeDriverの使い方...
-
テーブルの項目の値取得
-
jspでのArrayListの値の表示
-
二次元配列に数字をランダムに...
-
テーブルで表示する『列』を絞...
-
EasyUIのSubGrid(jquery)にお...
-
ブルダウン選択でページの表示...
おすすめ情報