亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數獨和 AnuglarJS

數獨和 AnuglarJS

繁星點點滴滴 2022-06-09 16:59:29
所以,我有一個數獨生成器,當通過 API 訪問時,它會生成一個數獨板(JSON 數組),然后在表格中使用 AngularJS 和 ng-repeat 我在頁面上顯示數獨板。到目前為止,這就是我所擁有的。我想要實現的是突出顯示框中的所有元素以及行和列?,F在行和列被突出顯示,但是我怎樣才能突出顯示下圖中用黃色標記的元素,因為這些元素屬于框:這是我的 HTML 代碼:<body ng-app="Sudoku"><!--    SUDOKU BOARD    --><div class="sudoku-game" ng-controller="SudokuController">    <table class="sudoku-board" ng-init="getSudoku()">        <tbody>            <tr ng-repeat="sudoku in sudokuGrid track by $index" ng-init="row = $index" class="sudoku-row" ng-class="{'highlight':rowSelected === row}">                <td ng-repeat="number in sudoku track by $index" ng-init="col = $index" class="sudoku-col" ng-class="{'highlight':colSelected === col}">                    <div class="sudoku-cell" ng-class="{'selected':isSelected === ((row*10) + col)}" ng-click="selectedCell(row, col)" ng-keyup="insertNum($event)" tabindex="1">                        <span class="prevalued" ng-if="number !== null" ng-bind="number"></span>                        <span class="emptycell" ng-if="number === null" ng-bind="emptyCell"></span>                    </div>                </td>            </tr>        </tbody>    </table></div>這是我在 JavaScript 中為 selectedCell(row, col) 函數編寫的代碼$scope.getCellPosition = function (row, col) {    return (row * 10) + col;}$scope.selectedCell = function (row, col) {    $scope.isSelected = $scope.getCellPosition(row, col);    $scope.rowSelected = row;    $scope.colSelected = col;    console.log($scope.isSelected);}
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

您可以在所選單元格的正方形中向單元格添加一個突出顯示類:


<div class="sudoku-cell" ng-class="{

  'selected':isSelected === ((row*10) + col),

  'highlight': isHighlight(row, col),

}" ng-click="selectedCell(row, col)" ng-keyup="insertNum($event)" tabindex="1">

在你的 js 中:


$scope.isHighlight = function (row, col) {

  // Add debugging functions

  //

  console.log({

    row,

    rowSelected: $scope.rowSelected,

    col,

    colSelected: $scope.colSelected,

  });

  // Return the boolean

  //

  return Math.floor(row / 3) === Math.floor($scope.rowSelected / 3) 

    && Math.floor(col / 3) === Math.floor($scope.colSelected / 3)

}


查看完整回答
反對 回復 2022-06-09
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號