首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >突出显示chessboard.js中的旧动作

突出显示chessboard.js中的旧动作
EN

Stack Overflow用户
提问于 2016-08-31 04:37:59
回答 1查看 592关注 0票数 0

我想强调的是旧的移动和新的移动在chessboard.js,基本上任何人都应该知道什么对手已经移动和从哪个位置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-03 16:42:29

不管您使用的是哪个后端国际象棋引擎,我想象您可以访问这两个坐标,比如e2e4源和目标:

  1. 定义用于突出显示正方形的CSS类。
  2. 从任何其他方块中移除“突出显示”类
  3. 找到移动源或目标的正方形
  4. 将突出显示类添加到目标或源广场

文档有一个很好的示例(使用jquery):http://chessboardjs.com/examples#5004

否则,下面的代码将突出显示玩家在香草Javascript中移动到的方块。

首先定义CSS,更完整的示例请参见国际象棋堆栈交换:https://chess.stackexchange.com/questions/15265/how-to-highlight-current-and-previous-move-of-the-player-in-chessboard-js

代码语言:javascript
复制
.highlight {
   -webkit-box-shadow: inset 0 0 3px 3px green;
   -moz-box-shadow: inset 0 0 3px 3px green;
   box-shadow: inset 0 0 3px 3px green;
}

因此,例如,清除了您所做的所有其他突出显示(参见Remove CSS class from element with JavaScript (no jQuery)):

代码语言:javascript
复制
     var hl = document.getElementsByClassName("highlight");
     if (hl[0] != undefined) { 
       hl[0].className = hl[0].className.replace(/\bhighlight\b/g,'');
     }

找到,玩家移动到的方块,添加highlight类:

代码语言:javascript
复制
     // I'm assuming you have a data object with target field
     var sq = document.getElementsByClassName("square-" + data.target);
     sq[0].className += " highlight"; // Remember to add a space before

为了实现源代码正方形和区分黑白,需要编写更多的代码,但它将遵循以下思路。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39240839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档