2012-03-05 49 views
2

我有一个div隐藏,当一个链接被点击时,它切换内容滑出。不幸的是,当它显示在页面的最底部时,我无法将它向下滚动到div的顶部。我已经完成了这与常规的JavaScript,但我希望它用JQuery来完成。Jquery的scrollTop不与滑动切换和隐藏div

Jquery的:

// Toggle Terms 
$('.toggleTerms').click(function(){ 
$('#displayTerms').slideToggle("slow", function(){ 
    if($('#displayTerms').is(":visible")){ 
     $('#displayTerms').animate({ 
      scrollTop: $('#displayTerms').position().top 
     }, "slow" 
    )} 
}); 

});

链接:

<a href="javascript:void(0);" class="toggleTerms">Terms</a> 

内容:

<div id="displayTerms" style="display:none; overflow:hidden;">The Terms</div> 

顺便说一句,它打开和关闭就好了。以上是我迄今为止所拥有的。

+0

如果您想滚动*页面*,请尝试使用'$(document).animate'。 – bfavaretto 2012-03-05 21:46:25

+0

我曾经这样做,它也不起作用。 – 2012-03-05 21:49:33

回答

0

感谢尼克·西蒙尼为让我更接近。答案是;

// Toggle Terms 
$('.toggleTerms').click(function(){ 
$('#displayTerms').slideToggle("slow", function(){ 
    if($('#displayTerms').is(":visible")){ 
     $("html, body").animate({scrollTop: $('#displayTerms').offset().top}); 
    } 
}); 
}); 
0

在此请看:

http://fiddle.jshell.net/GDtHJ/

在这里,我动画人体的滚动位置,而不是#displayTerms的 - 因为我们希望体位置移动到到#displayTerms的顶部。

希望这会有所帮助。

哦,你可能需要调整您的浏览器,以确保它在的jsfiddle底部右侧窗格中滚动窗口 - 否则,你不会看到它滚动:P

+0

感谢您尝试解决此问题,但不会跳到您的目标。窗口只展开,但不是“scrollTo”div。 – 2012-03-05 22:11:32

+0

我最后一个在FF和Chrome中为我工作,但没有IE。编辑它,它现在可以在所有3. – ShortRound1911 2012-03-05 22:25:46

+0

在FF的IE浏览器不适用于我。但它在Chrome中有效! – 2012-03-05 22:29:07