У меня есть сетка, выполненная из плитки. Есть 10 рядов, в общей сложности 10 плиток подряд. Это составляет 100 плиток в сетке.JavaScript Выбор сетки для плитки
При нажатии любой плитки я хотел бы, чтобы плитки вокруг щелкнутой плитки были выделены. Выделенные плитки должны начинаться с плитки и раскладываться наружу, причем максимум от плитки до двух плиток.
До сих пор мне удалось получить плитки сверху, справа, снизу и слева для выделения, однако мне все еще не хватает плитки вокруг них. Форма должна формировать бриллиант вокруг щелканной плитки.
Раствор должен быть расширяемым, чтобы для больших сетей и больших расстояний на перемещение плиток.
Вот что я сейчас делаю:
var Move = function() {
var that = this;
this.grid = {
width: 10,
height: 10
};
this.showMoveableTiles = function() {
var movableTiles = 2;
var row = $(this).data('row');
var tile = $(this).data('tile');
$('.tile').removeClass('moveable');
// Left
$(this).prevAll('[data-row="' + row + '"]:lt(' + movableTiles + ')').addClass('moveable');
// Right
$(this).nextAll('[data-row="' + row + '"]:lt(' + movableTiles + ')').addClass('moveable');
for (var i = 1; i <= movableTiles; i++) {
// Top
$('[data-row="' + (row - i) + '"][data-tile="' + tile + '"]').addClass('moveable');
// Bottom
$('[data-row="' + (row + i) + '"][data-tile="' + tile + '"]').addClass('moveable');
}
};
};
var move = new Move();
$(document).on('mousedown', '.tile', move.showMoveableTiles);
Что является лучшим способом для достижения этой цели?
Спасибо, но это не то, что я после. Следует выделять только плитки, состоящие из 2 или менее плиток от щелканной плитки. – Enijar
ах, поэтому вы определяете расстояние по краю? –
Да. Окончательная форма выглядела бы как алмаз. Что-то [подобное] (http://i.imgur.com/59EpZDP.png). – Enijar