如何从点(X 和 Y 坐标)创建范围对象
How to create a Range Object from a point (X and Y Coordinates)?
我查看了这个网站上的其他答案,发现对我没有任何用处。如果您认为我可能忽略了某些内容,请告诉我!
无论如何,我想根据鼠标位置创建一个范围。我希望它完全按照鼠标左键的工作方式工作。您在 DOM 中单击,它会放下文本光标,拖动,范围对象实时更新选择对象,您将获得"选择"。
但是,我找不到一种方法来使其与任何其他鼠标按钮或键盘键一起使用。
LMB在做什么赋予它这种能力?我似乎在任何地方都找不到答案。
有什么建议吗?
同样,是否有可能开发一些可以精确到 DOM 元素 parentNode 的子节点中的字符的东西,以便当您将鼠标悬停在控制台上时,该字符会显示在控制台中?
这是可能的,我之前已经发布了代码来从堆栈溢出上的鼠标事件创建一个范围:
https://stackoverflow.com/a/12924488/96100
这是一个允许使用鼠标右键进行选择的演示:
http://jsfiddle.net/timdown/BpjyG/6/
它包括链接答案中的代码以及以下内容:
var anchorRange;
function mouseMove(evt) {
evt = evt || window.event;
var range = getMouseEventCaretRange(evt), sel, selRange;
if (typeof range.setEndPoint != "undefined") {
// Old IE
selRange = anchorRange.duplicate();
selRange.setEndPoint("EndToEnd", range);
if (selRange.text == "") {
// Try the other way round
selRange = anchorRange.duplicate();
selRange.setEndPoint("StartToStart", range);
}
selRange.select();
} else if (window.getSelection) {
sel = window.getSelection();
if (sel.extend) {
// This is ideal: we can create forwards and backwards selections
// simply by moving the focus using extend()
sel.extend(range.startContainer, range.startOffset);
} else {
// We'll need to create a range and test for backwardsness
selRange = document.createRange();
selRange.setStart(sel.anchorNode, sel.anchorOffset);
selRange.setEnd(range.startContainer, range.startOffset);
if (selRange.collapsed) {
// Try the other way roound
selRange.setStart(range.startContainer, range.startOffset);
selRange.setEnd(sel.anchorNode, sel.anchorOffset);
}
selectRange(selRange);
}
}
}
function mouseUp(evt) {
evt = evt || window.event;
if (evt.button == 2) {
if (document.releaseCapture) {
document.releaseCapture();
}
document.onmousemove = null;
document.onmouseup = null;
anchorRange = null;
}
}
document.oncontextmenu = function() {
return false;
};
document.onmousedown = function(evt) {
evt = evt || window.event;
if (evt.button == 2) {
rightMouseButtonDown = true;
var range = getMouseEventCaretRange(evt);
anchorRange = range;
selectRange(range);
if (document.body.setCapture) {
document.body.setCapture();
}
document.onmousemove = mouseMove;
document.onmouseup = mouseUp;
return false;
}
};
相关文章:
- 如何创建一个谷歌地图地理坐标数组
- 根据折线坐标数组创建高程剖面图
- 可以从谷歌地图 api v3 从生物摊位获取坐标 “onclick” 创建的标记
- 如何从点(X 和 Y 坐标)创建范围对象
- 创建坐标的栅格阵列
- 动态创建有限的n维坐标系,该坐标系具有来自轴向坐标的整数坐标
- 从xml创建多边形坐标数组
- 创建一个Javascript对象来容纳用户'的地理位置坐标
- 如何使用HTML、CSS、Javascript和If Useful JQuery创建可点击分区的坐标网格
- 使用圆半径查找坐标以创建形状
- 如何创建具有绝对坐标的响应画布
- Algorithm/Formula创建一条线/条,该线/条遵循坐标列表中的一组规范
- 在具有用户坐标的元素内创建SVGPoint
- 我如何创建一个svg精灵,然后获得每个svg的坐标
- 使用必应定位API抓取坐标并使用它创建交互式地图
- 根据数组中坐标的频率创建多个数组
- 在一个单一的经纬度坐标周围创建一个半径来创建“到达区”.因此脚本知道车辆何时到达位置
- 使用jQuery迭代JSON数组[高级自定义字段和JSON API创建的WP坐标]
- 如何循环遍历坐标数组来为layerGroup创建地图标记
- 使用谷歌地图api与坐标从数据库javascript MySQL PHP创建线