Ich habe einen Tisch mit Zahlen. Wenn ich auf eine Zelle in der Tabelle klicke, wird der aktive Status umgeschaltet. Ich möchte eine Zelle auswählen und crtl drücken und eine andere Zelle auswählen. Infolgedessen werden Zellen zwischen der ersten und der zweiten aktiv. Wie implementiere ich es?
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';
}
}
}
Es sollte wie das Hervorheben von Schichten funktionieren und in beide Richtungen funktionieren
javascript
html
css
grüne Wiese
quelle
quelle
lastclick
bisthisclick
und auch aufctrl
Klick prüfenAntworten:
Versuche dies:
Codepen
quelle
Ich habe den Javascript- Teil völlig anders programmiert als Sie. Ich hoffe, dass Sie es noch verwenden können. Aber es macht genau das, wonach Sie gefragt haben.
Mit Umschalt + Zelle können Sie alle Zellen dazwischen auswählen.
Viel Glück ;)
quelle
Verwenden von
previousElementSibling
undcompareDocumentPosition()
Arbeitsdemo
https://codepen.io/aswinkumar863/pen/QWbVVNG
quelle
Komplettlösung mit Vorwärts- und Rückwärtsfunktionalität:
quelle
Ich habe durch Speichern des Index des ausgewählten Elements erstellt. Es funktioniert auf beide Arten (2 -> 6) und (6-> 2)
quelle
Wählen Sie eine oder ein Intervall aus, aber wenn Sie Strg drücken und auf das dritte Mal klicken, wird die vorherige Auswahl zurückgesetzt und die neue beginnt mit dem ersten Element (nicht so schwer zu erweitern).
quelle
Mit einer geringfügigen Änderung können Sie dies folgendermaßen tun:
Code-Snippet anzeigen
In Anlehnung an den Kommentar, dass dies nicht rückwärts funktioniert, habe ich das Original leicht neu gehasht, damit es in beide Auswahlrichtungen funktioniert. Die bearbeitete Version verwendet
dataset
Attribute - in diesem Fall als Ganzzahlen zugewiesen. Es wird eine Aufzeichnung des Klickens der Anfangszelle geführt, und wenn diectrl
Taste gedrückt wird, wird eine einfache Berechnung durchgeführt, um festzustellen, ob der Benutzer vorwärts oder rückwärts wählt - was sich wiederum auf die verwendete Schleife und damit auf die Zuordnung der aktiven Klasse auswirkt. Eine kleine Änderung am CSS mithilfe von Variablen diente nur der Bequemlichkeit ...Code-Snippet anzeigen
quelle
Wenn Sie offen für Fragen sind, finden Sie hier eine Lösung. Beachten Sie, dass dies bei der umgekehrten Auswahl nicht funktioniert
quelle