2011-04-01 38 views
0

我真的很困擾這個問題。任何幫助都會很棒。點擊錨點將我帶到底部,而不是恢復以前的位置

我點擊了一個鏈接,它擴大了內容,當我隱藏在隱藏按鈕上時,而不是將我帶到Expand鏈接,它將我帶到了底部。我已經嘗試了諸如onclick =「 fun()返回false「和href = javascrpit:void(0),但沒有幫助。

請參考http://jsfiddle.net/BdsyJ/此鏈接並點擊「我如何最大限度地延長電池壽命」,在底部您將獲得一個隱藏按鈕,該按鈕應該將控制權移回到點擊它而不是將頁面放在底部。

謝謝你們。

+0

對我來說很好(Chrome) – amosrivera 2011-04-01 20:01:35

+0

你知道你的css和圖片沒有一條路是對的,對嗎? – hunter 2011-04-01 20:02:18

+1

我沒有看到「點擊---」在那個jsfiddle的任何地方。 – Pointy 2011-04-01 20:02:45

回答

2

我改變了你的ReverseDisplay()方法這一點,它工作得很好:

 function ReverseDisplay(d) {    
      $("#" + d).toggle(); 

      $('html, body').animate({ 
       scrollTop: $("#" + d).prev().offset().top 
      }, 100);   
     } 

這裏有一個工作示例:

http://jsfiddle.net/hunter/BdsyJ/5/


如果你想知道, 是的你的HTML無效。 <li>元素不應該有<div>兄弟姐妹。

+0

多謝先生......我意識到我製造的故障.. – Gendaful 2011-04-01 20:22:29

+0

不錯!我仍然會緩存查看var el = $(「#」+ d); – daniellmb 2011-04-01 20:22:34

+0

實際上我有2個滾動條爲示例pls參考 - http://imgur.com/7Gn64..in在這種情況下,只有外窗口到頂部,但仍然內部窗口來到底部。任何建議請.. – Gendaful 2011-04-01 20:48:16

1

您位於頁面的底部,因爲您隱藏了太多內容。有兩件事情我會更新你的代碼:

  1. 高速緩存中的元素查找,所以你只能做一次,並
  2. 滾動頁面,您使用scrollTo(0,0)或 東西,如果你更復雜的關閉後它的頂部需要滾動回到您切換的確切的 元素。

代碼:

function ReverseDisplay(d) { 
    var el = document.getElementById(d); 
    el.style.display = (el.style.display == "none")?"block":"none"; 
} 
+0

感謝您的幫助丹妮:) – Gendaful 2011-04-01 20:22:55

+0

請參閱http:// imgur。 com/7Gn64,我有2個滾動條,那麼如何控制內部窗口? – Gendaful 2011-04-01 21:07:23

相關問題