Mam stolik z liczbami. Po kliknięciu komórki w tabeli przełącza ona stan aktywny. Chcę wybrać jedną komórkę i nacisnąć crtl i wybierz inną komórkę, w wyniku czego komórki między pierwszą a drugą staną się aktywne. Jak to wdrożyć?
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';
}
}
}
Powinno działać jak podświetlanie zmiany i działa w obu kierunkach
javascript
html
css
zielone pole
źródło
źródło
lastclick
do,thisclick
a także sprawdźctrl
kliknięcieOdpowiedzi:
Spróbuj tego:
codepen
źródło
Zaprogramowałem część JavaScript zupełnie inaczej niż ty. Mam nadzieję, że nadal możesz go używać. Ale robi dokładnie to, o co prosiłeś.
Za pomocą Shift + Cell możesz zaznaczyć wszystkie komórki pomiędzy.
powodzenia ;)
źródło
Korzystanie
previousElementSibling
icompareDocumentPosition()
Demo pracy
https://codepen.io/aswinkumar863/pen/QWbVVNG
źródło
Kompletne rozwiązanie z funkcjonalnością do przodu i do tyłu:
źródło
Utworzyłem, przechowując indeks wybranego elementu. Działa na dwa sposoby (2 -> 6) i (6-> 2)
źródło
Wybierz jeden lub interwał, ale jeśli naciśniesz Ctrl i klikniesz 3. raz, poprzednia selekcja zostanie zresetowana i nowa rozpocznie się od 1. pozycji (nie tak trudno ją rozszerzyć).
źródło
Z niewielką modyfikacją możesz to zrobić w następujący sposób:
Pokaż fragment kodu
Kontynuując komentarz dotyczący tego, że nie działa wstecz, nieco poprawiłem oryginał, aby działał w obu kierunkach wyboru. Edytowana wersja wykorzystuje
dataset
atrybuty - w tym przypadku przypisane jako liczby całkowite. Przechowywany jest zapis początkowego kliknięcia komórki, a poctrl
naciśnięciu klawisza wykonuje się proste obliczenia w celu ustalenia, czy użytkownik wybiera naprzód, czy wstecz - co z kolei wpływa na zastosowaną pętlę, a tym samym na przypisanie aktywnej klasy. Niewielkie ulepszenie CSS przy użyciu zmiennych było tylko dla wygody ...Pokaż fragment kodu
źródło
Jeśli jesteś otwarty na jquery, oto rozwiązanie. Zauważ, że to nie działa w odwrotnym wyborze
źródło