按下按钮改变表格单元格颜色

问题描述:

我想通过按下一个按钮来改变表格中下一个单元格的颜色。按下按钮改变表格单元格颜色

例如:如果按下左按钮,则左侧下一个单元格的颜色将从白色变为红色,并且实际单元格颜色将从红色变为白色,依此类推。

通过这种方式,我们有一种错觉,即通过按下按钮来移动红色方块。

是否有可能使用jquery和CSS做到这一点?

enter image description here

+5

是的,它肯定是可能的! :) – Josh 2013-05-14 14:06:16

+0

如果要创建移动框效果,可以使用html5画布,只是说 – gamehelp16 2013-05-14 14:11:09

+1

不要指望人们为您编写整个代码。至少告诉我们你迄今为止做了什么,我们很乐意帮助你。 – Broxzier 2013-05-14 14:11:28

作为一个完整的例子:

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;  
} 

http://jsfiddle.net/nzRxu/

+0

感谢您的帮助! – Oualid 2013-05-14 14:29:11

当然,你可以在这里是整个比如现在如何,我认为应该是这样的

http://jsfiddle.net/puEbp/2/

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; 
} 
+0

感谢您的帮助! – Oualid 2013-05-14 14:21:53

+0

如果您有任何问题,只需回来,我会看到我能为您做些什么:D – 2013-05-14 14:23:29