[JS] Day10 - Hold Shit and Checkboxes
5157 ワード
demo:
https://danji-ya.github.io/JS_javascript30/10-HoldShitandCheckboxes/
Day10 - Hold Shit and Checkboxes
🎯 機能要件
🚀 学識
Shiftキーの使用時にチェックボックスを繰り返します
const checkboxes = document.querySelectorAll("input[type=checkbox]");
let lastCheckedItem = undefined;
[...checkboxes].map(checkbox => checkbox.addEventListener("click", e => {
let isStart = false;
if(e.shiftKey && e.target.checked) {
if(!lastCheckedItem) return;
[...checkboxes].map(checkbox => {
if(checkbox === lastCheckedItem || checkbox === e.target) {
isStart = !isStart;
}
if(isStart) checkbox.checked = true;
});
}
lastCheckedItem = e.target;
}));
lastCheckedItem
では、最後にチェックしたアイテムを覚え、各イベントリスナーに値を共有できます.isStart
は、クリックするたびに初期化され、通常チェックとshiftを押すチェックの間の値を判断することができる.+
が無限大カード(スライダ)を実現する場合、1つ目の方法:
左右に1回移動するごとに、最後の要素がその方向の最後に
insertAdjacentElement
で貼り付けられて起動する.ただしdotを使用する場合、スキップした部分を一緒に貼る必要があるため、異なる方法を使用しています.2つ目の方法:
基本sliderの左、右の先端にクローンelementを貼り付け、先端から反対側に移動すると、横にコピーした要素に移動し、transitionをnoneに変換して、その間に反対側に移動します.このようにdot移動を用いる場合,indexを簡単に用いるだけで移動できる.
また、トップから反対側に使用する場合のみ、重複クリックを防止し、自然な移動を実現できます.
https://danji-ya.github.io/JS_javascript30/00-infiniteCarousel/
Reference
この問題について([JS] Day10 - Hold Shit and Checkboxes), 我々は、より多くの情報をここで見つけました https://velog.io/@jiseong/JS-Day10-Hold-Shit-and-Checkboxesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol