javascript - 如何突出显示给定坐标的单词

标签 javascript jquery html coordinates

我找到这段代码:( result of the script ):

HTML

<p>Each word will be wrapped in a span.</p><p>A second paragraph here.</p>Word: <span id="word"></span>

JavaScript

// wrap words in spans
$('p').each(function() {
    var $this = $(this);
    $this.html($this.text().replace(/\b(\w+)\b/g, "<span>$1</span>"));
});


// bind to each span
$('p span').hover(
    function() { $('#word').text($(this).css('background-color','#ffff66').text()); },
    function() { $('#word').text(''); $(this).css('background-color',''); }
);

我想要类似的东西。我需要做的是获得相同的结果,但不是突出显示光标下的单词(跨度标签),而是需要突出显示给定像素坐标的单词(跨度标签)。 有谁知道这是否可能,我该怎么做?还是有别的办法?

谢谢!

最佳答案

也许你想使用 elementFromPoint() .使用起来非常简单,只需要传递坐标,这个函数就会返回该点下的一个元素。

对于您的特定情况,每个单词都必须位于独立元素 spandiv 或其他元素中。

查看工作示例:jsfiddle

也许你想做一些更稳健的解决方案,并添加一个条件,如果在给定的坐标中没有元素(elementFromPoint() 返回它的祖先或 body 元素或 NULL(如果坐标不在可见部分)

关于javascript - 如何突出显示给定坐标的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529936/

相关文章:

javascript - 为什么这个持有 SVG 的 `blob:` URL 会污染 Chrome 中的 Canvas ?

html - 在响应式布局中指定高度

php - 如果右键单击复选框,将出现另一个表单填写的高级表单填写

javascript - 递归地重新创建嵌套对象数组

javascript - 使用 require js 进行 knockout - 未正确加载

JQUERY,返回单击添加类的对象

javascript - jQuery、AJAX 和 MySQL 中的复选框问题

html - 位置 :absolute h1 element overflowing right

javascript - Google map 和多个标记

javascript - 隐藏 dom 上的所有内容,直到所有内容都加载完毕