我想通過按下一個按鈕來改變表格中下一個單元格的顏色。按下按鈕改變表格單元格顏色
例如:如果按下左按鈕,則左側下一個單元格的顏色將從白色變爲紅色,並且實際單元格顏色將從紅色變爲白色,依此類推。
通過這種方式,我們有一種錯覺,即通過按下按鈕來移動紅色方塊。
是否有可能使用jquery和CSS做到這一點?
我想通過按下一個按鈕來改變表格中下一個單元格的顏色。按下按鈕改變表格單元格顏色
例如:如果按下左按鈕,則左側下一個單元格的顏色將從白色變爲紅色,並且實際單元格顏色將從紅色變爲白色,依此類推。
通過這種方式,我們有一種錯覺,即通過按下按鈕來移動紅色方塊。
是否有可能使用jquery和CSS做到這一點?
作爲一個完整的例子:
HTML:
<table>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>
<button id="left">Left</button>
<button id="right">Right</button>
<button id="up">Up</button>
<button id="down">Down</button>
的JavaScript/jQuery的:
var position = 0;
$("#left").click(function() {
position = position -1;
setCurrentPosition();
});
$("#right").click(function() {
position = position + 1;
setCurrentPosition();
});
$("#up").click(function() {
position = position -4;
setCurrentPosition();
});
$("#down").click(function() {
position = position + 4;
setCurrentPosition();
});
function setCurrentPosition() {
$(".selected").removeClass();
$("table td").each(function(value) {
if (value == position) {
$(this).addClass("selected");
}
});
}
CSS:
table td {
border: 1px solid black;
padding: 30px;
}
.selected {
background-color: red;
}
感謝您的幫助! – Oualid 2013-05-14 14:29:11
當然,你可以在這裏是整個比如現在如何,我認爲應該是這樣的
HTML
<table>
<tr>
<td class="red"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<button id="leftButton">left</button>
<button id="rightButton">right</button>
<button id="downButton">down</button>
<button id="upButton">up</button>
的JavaScript
$(function(){
$('#rightButton').on('click', function(e){
e.preventDefault();
var actualTD = $('td.red');
if (actualTD.next('td').length > 0) {
actualTD.next('td').addClass('red');
actualTD.removeClass('red');
}
});
$('#leftButton').on('click', function(e){
e.preventDefault();
var actualTD = $('td.red');
if (actualTD.prev('td').length > 0) {
actualTD.prev('td').addClass('red');
actualTD.removeClass('red');
}
});
$('#downButton').on('click', function(e){
e.preventDefault();
var actualTD = $('td.red'),
actualParentTD = actualTD.parent('tr'),
index = actualTD.index();
if (actualParentTD.next('tr').length > 0) {
actualParentTD.next('tr').find('td:eq('+index+')').addClass('red');
actualTD.removeClass('red');
}
});
$('#upButton').on('click', function(e){
e.preventDefault();
var actualTD = $('td.red'),
actualParentTD = actualTD.parent('tr'),
index = actualTD.index();
if (actualParentTD.prev('tr').length > 0) {
actualParentTD.prev('tr').find('td:eq('+index+')').addClass('red');
actualTD.removeClass('red');
}
});
});
CSS
table td{
border: 2px solid gray;
width: 50px;
height: 50px;
}
.red{
background: red;
}
感謝您的幫助! – Oualid 2013-05-14 14:21:53
如果您有任何問題,只需回來,我會看到我能爲您做些什麼:D – 2013-05-14 14:23:29
是的,它肯定是可能的! :) – Josh 2013-05-14 14:06:16
如果要創建移動框效果,可以使用html5畫布,只是說 – gamehelp16 2013-05-14 14:11:09
不要指望人們爲您編寫整個代碼。至少告訴我們你迄今爲止做了什麼,我們很樂意幫助你。 – Broxzier 2013-05-14 14:11:28