自动滚动到跨度元素

ele*_*eep 0 html javascript jquery

我有一个包含(惊喜!)一篇文章的元素。

页面顶部有一个标签列表,可以在文章中找到。当用户单击标签时,文章中的任何匹配词都会突出显示。

我遇到的问题是自动滚动到突出显示的单词。

有没有办法用 javascript/jQuery 做到这一点?

以下是我查找单词并突出显示它的代码:

$(".article-tags a.toggle").live("click", function () {
        var $this = $(this);
        var $p = $this.closest("p");
        if ($p.find("span.highlight").length == 0) {
            $("#viewer .article-body").highlight($this.text());
            $this.highlight($this.text());
            document.getElementById("viewer").scrollTop = $p.find("span.highlight").offsetTop;
        }
        else {
            $("#viewer .article-body").removeHighlight();
            $p.removeHighlight();
        }
        return false;
    });
Run Code Online (Sandbox Code Playgroud)

谢谢。

jAn*_*ndy 5

有几种方法可以实现这一点。

  • jQuerys.animate()scrollTop设置为elements.offset().top
  • $(window).scrollTop(element.offset().top);
  • element.scrollIntoView();

.scrollIntoView() 是一种本地方法,您可以直接在 DOM 节点上调用它。