2010-09-12 91 views
1

我正在使用javascript来更改带有onclick事件的div标签的显示。 div位于页面的底部,当和/或如果需要时用户可以打开div。当这个div更改为显示:block时,如何让页面向下滚动?显示:无显示:块 - 如何让页面向下滚动?

FYI:我曾尝试

var objDiv = document.getElementById("the_div_id"); 
objDiv.scrollTop = objDiv.scrollHeight; 

的页面就不会向下滚动。有任何想法吗?

回答

7
var objDiv = document.getElementById("the_div_id"); 
objDiv.scrollIntoView(); 
+0

这一个是答案。作品完全完美。 – MP123 2010-09-12 06:42:14

0

这样的事会工作

由DIV

<a href="#div" id="showDivTrigger"> 
<a name="div"></a> 
<div style="display:none;"> 
contents 
</div> 
<script> 
var element = document.getElementById('#div'); 
element.style.display = ''; 
</script> 
+0

这确实适用于第一个实例。在第一次调用div之后,它不再工作。我用: – MP123 2010-09-12 06:44:53

+0

location.href = location.href +'#tt'然后在页面底部 MP123 2010-09-12 06:45:29

0

scrollTop只会使上本身具有的滚动条元素感添加锚点(或不这样做,但可以滚动) 。从MSDN documentation对于没有滚动条的对象,此属性始终为0。对于这些对象,设置属性不起作用。

您chould设置body.scrollTop代替(或使用window.scrollTo具有相同效果),为此,您需要在页面中,您可以通过走起来元素的offsetParent链和总结offsetTop获得元素的绝对位置距离。您最好使用框架,例如jQuery的offset方法,比手动做这个。 (当然,如果你只需要跳到元素而不是直观滚动,那么mplungjan's solution是最简单的。)