2011-08-30 175 views
2

我正在使用Jscrollpane,並且一切都很好,除非我嘗試將它與內部錨點一起使用。 它應該像官方頁面上的示例一樣工作。Jscrollpane和內部錨鏈接

但在我的例子中,它真的毀了我的網站。整個內容向上飄浮,我無法自己弄清楚。

這裏是我的網頁:http://kunden.kunstrasen.at/htmltriest/index.php?site=dieanreise&user_lang=de 如果內部錨點:http://kunden.kunstrasen.at/htmltriest/index.php?site=dieanreise&user_lang=de#westautobahn

任何人一箇中心思想什麼怎麼回事? 感謝您的幫助。

回答

1

jspane不適用於舊式錨點 例如,

<a name="anchor"></a> 

,而不是你寫

<a id="anchor"></a> 

additionaly您必須啓用

hijackInternalLinks: true; 

在JScrollPane中設置對象。

的hijackInternalLinks還捕捉鏈接從滾動面板外,如果你只需要內部鏈接,您可以添加以下代碼,就像hijackInternalLinks它綁定在一個元素點擊的Funktion與目標調用scrollToElement:

  \$(document).ready(function() { 
      panes = \$(".scroll"); 
      //hijackInternalLinks: true; 
      panes.jScrollPane({ 
      }); 
      panes.each(function(i,obj){ 
       var pane = \$(obj); 
       var api = pane.data('jsp'); 
       var links = pane.find("a"); 
       links.bind('click', function() { 
        var uriParts = this.href.split('#'); 
        if (uriParts.length == 2) { 
         var target = '#' + uriParts[1]; 
         try{ 
          api.scrollToElement(target, true); 
         }catch(e){ 
          alert(e); 
         } 
         return false; 
        } 
       }); 
      }); 
     }); 

但請注意,您將始終必須使用標籤上的id屬性。 如果您正在使用TinyMCE的,你可以用這個功能

function myCustomCleanup(type, value) { 
    switch (type) { 
      case "get_from_editor_dom": 
        var as = value.getElementsByTagName("a"); 
        for(var i=0; i< as.length;i++){ 
         if (as[i].hasAttribute('name')){ 
          var name = as[i].getAttribute('name'); 
          as[i].setAttribute('id',name); 
         } 
        } 
        break; 
    } 

    return value; 

}

修復代碼