Я создал скрипт для динамического добавления и удаления карточек из сетки CSS.Просто взгляните на: https://codepen.io/michaelkonstreu/pen/ZMRQaE
Добавление и удаление карт осуществляется с помощью JS:
// Add new card
function addCard(card) {
card.id = _cards.length + 1;
_cards.push(card);
_$main.html('');
for (let i = 0; i < _cards.length; i++) {
drawCard(_cards[i]);
}
}
// Remove card
function removeCard(id) {
let cardRemoved = false;
$('#' + _idPrefix + id).remove();
for (let i = 0; i < _cards.length; i++) {
if (_cards[i].id === id) {
_cards.splice(i, 1);
cardRemoved = true;
break;
}
}
if (cardRemoved) {
// New IDs and redrawing
_$main.html('');
for (let i = 0; i < _cards.length; i++) {
_cards[i].id = i + 1;
drawCard(_cards[i]);
}
}
}
// Draw card
function drawCard(card) {
let buildStr = '';
buildStr += '<div class="grid-container ' + card.size + '" id="' + _idPrefix + card.id + '">';
buildStr += '<div class="grid-item ' + card.color + '">';
buildStr += '<div class="card-text">' + card.title + '</div></div></div>';
_$main.html(_$main.html() + buildStr);
}
Карты хранятся в глобальном массиве _cards.После удаления карты мне нужно обновить их идентификаторы, которые похожи на их позиции (1-8).Обратите внимание, что часто добавление карт не ограничено (видны только 8).
По эстетическим соображениям я хочу использовать переходы / анимацию, когда карты удаляются или добавляются в сетку.К настоящему времени я не нашел решения.
Добавление новой карты: новая карта должна двигаться справа налево, пока не достигнет своей позиции в сетке.Извлечение карты. Исчезновение карты.Сетка должна «заполнять» себя, поэтому карты «за» удаленной карты также должны перемещаться справа налево на свои новые позиции.