2010-11-23 83 views
0

我有一個包含(驚喜!)文章的元素。自動滾動到跨度元素

頁面頂部有一列標籤,可以在文章中找到。 當用戶點擊標籤時,它會突出顯示文章中的任何匹配詞。

我遇到問題然後自動滾動到突出顯示的單詞。

有沒有辦法用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; 
    }); 

感謝。

+0

它是否在第一個地方工作?我看到這卷軸,所以我可以假設它不起作用? – Blender 2010-11-23 16:15:44

回答

4

幾種方法來實現。

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

.scrollIntoView()是您可以在DOM節點上直接調用本地方法。

0
$('span.highlight').first().prepend('<a class="highlighted" name="hightlighted" />'); 
window.location.hash = '#highlighted'; 

這應該做到這一點。您要在元素之前添加一個錨點,然後滾動到它。在此之前,您可能需要輸入$('a.highlighted').remove()以清除以前的任何添加項。