2010-09-12 62 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是最簡單的。)

相關問題