Jquery 悬停时逐行高亮显示段落

Jquery 悬停时逐行高亮显示段落,jquery,html,css,Jquery,Html,Css,是否可以仅高亮显示鼠标指针悬停的行?假设我有这一段: <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam in nisi eleifend, efficitur ligula vel, scelerisque risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam semper d

是否可以仅高亮显示鼠标指针悬停的行?假设我有这一段:

<p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    Nam in nisi eleifend, efficitur ligula vel, scelerisque risus. 
    Interdum et malesuada fames ac ante ipsum primis in faucibus. 
    Nam semper diam sodales eros dictum euismod. Duis ut hendrerit leo. Sed iaculis sem ac est porttitor facilisis. 
    In convallis facilisis libero ut interdum. Phasellus scelerisque ex in lacus tempus mollis. Integer scelerisque viverra elit id fringilla. Proin nibh arcu, imperdiet a lacus ac, feugiat interdum sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse ultrices vestibulum orci, a varius quam cursus ut. Nulla ut suscipit sapien. Morbi et urna elementum, pretium augue non, tristique nulla. Nulla massa tellus, facilisis at fringilla et, rutrum ac libero.
</p>

Lorem ipsum dolor sit amet,是一位杰出的献身者。
尼西·埃利芬德的纳姆、利古拉·维尔的效率、利索斯的权杖。
在faucibus中,Interdum和malesuada在第一次同侧前就出名了。
不,不,不,不,不。迪乌特·亨德雷特·利奥。Sed iaculis sem是一个最简单的港口设施。
在convallis设施中,可自由进出。淡色斑鸠中的Phasellus scelerisque ex。整型权杖viverra elit id fringilla。在尼布·阿库(Proin nibh arcu),他是一个弱者,是一个世袭的智者。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。耳道前庭悬垂,是一种耳道静脉曲张。我们的智囊团是空的。Morbi和urna elementum,pretium augue non,tristique nulla。Nulla massa tellus,弗林利亚等地设施,rutrum ac libero。

如果我将鼠标悬停在第一行上,第二行是否可以高亮显示,以此类推

说明: 资料来源:

我正在寻找一种适用于多行段落的解决方案。我不必在每个单词中手动添加span。

编辑(2016年6月21日):-(突出显示整个段落的解决方案)

Rory McCrossan的解决方案基本上是有效的,但当我在wordpress博客中尝试实现它时,突出显示出现了问题,起初效果很好,我向下滚动了一点,突出显示位置计算错误。因此,我在这个网站上找到了一个简洁的解决方案,您需要加载类
hvr fade
并将其添加到每个
标记中。。。当然,这并没有考虑到最初的问题,但它是另一种解决类似问题的方法,非常容易与一个伟大的css悬停效果集合。希望这对某人有所帮助…

在较大的元素中没有直接的方法来获取单行文本。为了达到您的要求,您可以将
p
标记的每个单词包装在自己的
span
中。然后在
span
标记悬停时,可以突出显示位于相同
偏移量()的同级。大概是这样的:

$('p').html(function() {
    return $(this).text().replace(/\w+[,.]?\s+?/g, "<span>$&</span>")
});

$('p').on('mouseenter', 'span', function() {
    var $span = $(this);
    $('p span').filter(function() {
        return $(this).offset().top == $span.offset().top;
    }).toggleClass('hover');
}).on('mouseleave', 'span', function() {
    $('p span').removeClass('hover');
})
。行标记{
显示:无;
}
.文本块:悬停.线条标记{
位置:绝对位置;
宽度:100%;
背景色:#CC0;
显示:块;
z指数:-1;
}

我明白了,看来您的解决方案是最优雅的!我感谢你的帮助Rory,谢谢!我刚刚检查了Google Chrome上的开发者控制台,我有一个问题:“当我悬停在第一行时,所有的
标记都会得到一个类“hover”,但当我悬停在任何其他行时,它们都不会……为什么会发生呢”?这很奇怪,只有与当前悬停的标记在同一行上的
span
标记才能获得该类。我刚刚检查了小提琴,它似乎在工作。你有哪个版本的Chrome?这正是我所想的,但奇怪的事情发生了,所以我问:)顺便说一句,它工作得很好,只是奇怪的是,控制台显示的不是实际发生的事情。我使用的是49.0.2623.87 m版(64位)。不幸的是,这是对第一种方法的警告。您还必须编写一些东西,以递归方式将直接和子级别的文本节点包装到跨度中,这将很快变得复杂。第二种方法可以用于任何文本样式。
$('.text-block')
    .append('<div class="line-marker">&nbsp;</div>')
    .on('mousemove', function(e) {
        $(this).find('.line-marker').css('top', e.clientY);
    })