2020百度前端笔试编程题简化版-前端实现js控制css样式

前端实现js控制css样式

原题里写的是会产生随机数,决定开始的格子是那一个,并且能根据按键来决定移动方向
37 左 38:上 39:右 40:下
以下为简化版的解法
html

<html>
  <table id="my_table">
    <tr><td></td><td></td><td></td><td></td><td></td></tr>
    <tr><td></td><td></td><td></td><td></td><td></td></tr>
    <tr><td></td><td></td><td></td><td></td><td></td></tr>
    <tr><td></td><td></td><td></td><td></td><td></td></tr>
    <tr><td></td><td></td><td></td><td></td><td></td></tr>
  </table>
</html>

css

td{
  border:1px solid black;
  width:50px;
  height:50px;
}
.active{
  background-color:yellow;
}

js

function bind(){
  document.onkeydown=event=>{
    if(!event) return;
    var code=event.keyCode||' ';
    var row=0,col=0;
    var row_len=document.getElementById("my_table").rows.length;
    var col_len=document.getElementById("my_table").rows[0].cells.length;
    if(!{'37':1,'38':1,'39':1,'40':1}[code]) return;
    switch(code)
      {
        case 37:
          if(col-1>0){
            col--;
          }
          break; 
        case 38:
          if(row-1>0){
            row--;
          }
          break;
        case 39:
          if(col+1<col_len){
            col++;
          }
          break;
        case 40:
          if(row+1<row_len){
            row++;
          }
          break;
         
      }
    var obj = document.getElementById("my_table").rows[row].cells[col]; 
    obj.setAttribute("class", "active");   
event.preventDefault();
   
  };
}
bind();

具体效果展示在codepan:https://codepen.io/Skyeeee227/pen/ExKdvJJ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值