如何单击一个元素,将鼠标移到其他元素上,然后 select 您悬停在 JavaScript 上的那些元素?

How to click on an element, move the mouse over other elements and then select those elements that you hovered over with JavaScript?

我基本上是在尝试复制 jQuery.selectable() 方法,但我在 vanilla JavaScript 中需要它。我应该使用哪种 event listener 方法?我试过 mousedown,但我如何检测到另一个元素已被访问? 这是 jQuery 如何做到这一点的示例:[http://jsfiddle.net/ZfevM/99/]

我想通了。还必须与 mouseupmousemove 一起工作。这是我想出的,它按预期工作:[https://repl.it/repls/EquatorialLumberingInfinity]

欢迎任何想法或替代解决方案!

您可以使用 window.getSelection() 和 [selection].getRangeAt([index]);

document
  .getElementsByTagName('body')[0]
  .addEventListener('mouseup', 
     function(){ 
       const selection = window.getSelection(); 
       const range = selection.getRangeAt(0); 

       console.log( selection, range ) 
  })

选择具有 .containsNode() 函数来与给定的集合进行比较; Range 具有 .startContainer 和 .endContainer 以及 .commonAncestorContainer 以与给定结构进行比较