原生js模擬錨點,實現點擊后,內容定位到本頁的對應位置


今天在做angularJS項目過程中,遇見了一個需求,在一個頁面中有多個表格,每個表格都有對應的分頁,點擊頂部對應的模塊,可以定位到每個表格模塊具體的位置。

頁面如下所示:

 

 

在angular中,為了使url地址訪問的時候更加方便,我們使用了html5mode方式,改變了url默認的hash樣式,對html5mode詳細了解請查看為什么angularjs使用ui-router時要使用html5Mode? 

 

這時,如果我們使用錨點的方法就會存在一個問題,當我們點擊頂部的tab部分是

 

 

頁面的url就回變成http://www.×××××.com?brandId=1&brandName=***#434

 

這個時候我們在點擊翻頁的時候,頁面就會跳轉到頁面的頂部,而不是我們訪問的這個位置。

 

解決的辦法是:

 

1. 不給tab部分添加類似與<a href="/test#333"></a>, 寫成 <a href="javascript:;"></a>阻止a標簽的默認操作。

2. 給 a 標簽添加點擊事件:  <a href="javascript:;" ng-click="_scrollTo('someId')"></a>

3. 定義對應的實現方法:

  function _scrollTo(id){

    var _id = document.getElementById(id);

    window.scrollTo(0,_id.offsetTop);

  }

ps: 這里的id是我們想跳轉到的節點對應的id

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM