如何在Vue

时间:2017-08-15 04:04:53

标签: javascript vue.js

我正在尝试模仿电子表格功能,我可以通过按shift + mouseover来选择多个表格单元格,而我在选择附近的单元格时遇到了一些麻烦和选择的结束范围。例如,对于3x3网格,单元格0,0是起始单元格,当我将鼠标移到0,1时,1,1 1,0也应该被选中,因为它属于范围。这是我到目前为止的逻辑,但它只在鼠标经过时选择了单元格(非相邻单元格被选中)。

这是我的代码:

 selectCell (row, col) {
  this.coors.push({x: row, y: col})
  let len = this.coors.length - 1
  this.start = {x: this.coors[0].x, y: this.coors[0].y}
  this.end = {x: this.coors[len].x, y: this.coors[len].y}
  this.grid[row].splice(col, 1, 2)
  this.iterateOverGrid(2)
},
iterateOverGrid (col) {
  for (let i = this.start.x; i <= this.end.x; i++) {
    this.grid[i].splice(this.end.y, 1, col)
    for (let j = this.start.y; j <= this.end.y; j++) {
      this.grid[i].splice(this.end.y, 1, col)
    }
  }
},

start保存所选第一个单元格的x和y位置; end保存所选最后一个单元格的x和y位置。我的想法是迭代网格中的每一行和一行(我试图在iterateOverGrid()方法中执行),然后为2的每个单元格分配值start } end参数。我怎样才能做到这一点?

0 个答案:

没有答案