admin管理员组文章数量:1415420
I have an element that contains (surprise!) an article.
There is a list of tags at the top of the page that are found in the article. When a user clicks a tag it any matching words in the article are highlighted.
What I am having trouble with is then automatically scrolling to the highlighted word.
Is there any way to do this with javascript/jQuery?
The following is my code to find the word and highlight it:
$(".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;
});
Thanks.
I have an element that contains (surprise!) an article.
There is a list of tags at the top of the page that are found in the article. When a user clicks a tag it any matching words in the article are highlighted.
What I am having trouble with is then automatically scrolling to the highlighted word.
Is there any way to do this with javascript/jQuery?
The following is my code to find the word and highlight it:
$(".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;
});
Thanks.
Share Improve this question asked Nov 23, 2010 at 16:11 electricsheepelectricsheep 5,2249 gold badges38 silver badges41 bronze badges 1- Does it work in the first place? I see that this scrolls, so may I assume that it doesn't work? – Blender Commented Nov 23, 2010 at 16:15
2 Answers
Reset to default 5Several ways to acplish that.
- jQuerys
.animate()
withscrollTop
set toelements.offset().top
$(window).scrollTop(element.offset().top);
element.scrollIntoView();
.scrollIntoView()
is a native method which you can call on a DOM node directly.
$('span.highlight').first().prepend('<a class="highlighted" name="hightlighted" />');
window.location.hash = '#highlighted';
That should do it. You're adding an anchor just before the element, then scrolling to it. You might want to put in a $('a.highlighted').remove()
before this to clear any previous additions.
本文标签: javascriptAuto scroll to span elementStack Overflow
版权声明:本文标题:javascript - Auto scroll to span element - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745234902a2648991.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论