Selecto.js
Selecto.js web
Selecto.js是一款JavaScript開發的範圍選擇套件,可指定區塊元素內的進行範圍選擇與取消,亦可支援點擊或shift組合鍵進行加選或xor選擇,功能簡單易於使用。
以下為單html檔測試範例︰
<html> <head> <title>Selecto.js demo</title> <script src="https://cdn.jsdelivr.net/npm/selecto@1.1.2/dist/selecto.min.js"></script> <style> .panel { padding: 100px; width: 400px; } .cube { display: inline-block; margin: 5px; width: 30px; height: 30px; background-color: #aaa; } .selected { background-color: #f26; } </style> </head> <body onKeyDown="keydown(event)" onKeyUp="keyup(event)"> <div class="panel"> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div id="msg"></div> </div> <script> let selecto = new Selecto({ container: document.querySelector('.panel'), // The container to add a selection element //dragContainer: Element, // The area to drag selection element (default: container) //selectableTargets: [".target", document.querySelector(".target2")], // Targets to select. You can register a queryselector or an Element. selectableTargets: ['.cube'], selectByClick: true, // Whether to select by click (default: true) selectFromInside: false, // Whether to select from the target inside (default: true) continueSelect: false, // After the select, whether to select the next target with the selected target (deselected if the target is selected again). toggleContinueSelect: "shift", // Determines which key to continue selecting the next target via keydown and keyup. //keyContainer: window, // The container for keydown and keyup events hitRate: 100, // The rate at which the target overlaps the drag area to be selected. (default: 100) }); selecto.on("select", function(e){ e.added.forEach(function(el){ el.classList.add("selected"); }); e.removed.forEach(function(el){ el.classList.remove("selected"); }); }); </script> <script> function keydown(e){ console.log('keydown',e.key) document.querySelector('#msg').innerHTML='keydown: ' + e.key } function keyup(e){ console.log('keyup',e.key) document.querySelector('#msg').innerHTML='' } </script> </body> </html>
載入後畫面為︰
#Selecto.js, 範圍, 選擇
留言
張貼留言