У меня есть таблица с номерами. Когда я нажимаю на ячейку в таблице, она переключает активное состояние. Я хочу выбрать одну ячейку и нажать crtl и выбрать другую ячейку, и в результате ячейки между первой и второй станут активными. Как это реализовать?
codepen https://codepen.io/geeny273/pen/GRJXBQP
<div id="grid">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
</div>
const grid = document.getElementById("grid")
grid.onclick = (event) => {
event.stopPropagation();
const { className } = event.target;
if (className.includes('cell')) {
if (className.includes('active')) {
event.target.className = 'cell';
} else {
event.target.className = 'cell active';
}
}
}
Он должен работать как подсветка смены и работает в обоих направлениях
javascript
html
css
Greenfield
источник
источник
lastclick
до,thisclick
а также проверить наctrl
кликОтветы:
Попробуй это:
codepen
источник
Я запрограммировал Javascript часть c полностью отличной от вас. Я надеюсь, что вы все еще можете использовать его. Но он делает именно то, что вы просили.
С Shift + Cell вы можете выбрать все ячейки между ними.
удачи ;)
источник
Использование
previousElementSibling
иcompareDocumentPosition()
Рабочая Демо
https://codepen.io/aswinkumar863/pen/QWbVVNG
источник
Комплексное решение с прямой и обратной функциональностью:
источник
Я создал, сохранив индекс выбранного элемента. Это работает в обоих направлениях (2 -> 6) и (6-> 2)
источник
Выберите один или интервал, но если вы нажмете Ctrl и нажмете 3-й раз, предыдущий выбор сбрасывается, и новый начинается с 1-го элемента (не так сложно расширить)
источник
С небольшой модификацией вы можете сделать это так:
Показать фрагмент кода
Следуя комментарию о том, что это не работает задом наперед, я немного перефразировал оригинал, чтобы он работал в обоих направлениях выбора. Отредактированная версия использует
dataset
атрибуты - в этом случае назначаются как целые числа. Ведется запись о нажатии начальной ячейки, и, еслиctrl
нажата клавиша, выполняется простой расчет, чтобы определить, выбирает ли пользователь вперед или назад, что, в свою очередь, влияет на используемый цикл и, следовательно, на присвоение активного класса. Небольшая настройка CSS с использованием переменных была просто для удобства ...Показать фрагмент кода
источник
Если вы открыты для jquery, вот решение. Обратите внимание, что это не работает в обратном выборе
источник