2011-04-01 105 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

相关问题