2012-09-16 50 views
1

基本上,頁面中某個div的溢出被設置爲垂直滾動。我希望用戶能夠在頁面加載後立即滾動。爲了滾動,此時您必須先點擊該div,然後才能滾動。在頁面中選擇一個div onload

我該如何讓這種情況馬上發生?我會懇請您避免使用document.location.hash方法,因爲這似乎是由於某些原因導致頁面內出現其他問題。

如果你看看頁面,可滾動的div是#mainView。

Example page

+2

什麼瀏覽器(和瀏覽器說的版本)您使用​​的?我無法複製您的問題。 – Daedalus

回答

0

好了,你可以使用window.scroll()。它甚至似乎得到很好的支持(IE9,Chrome,Firefox)。 IE8/7我不太確定,因爲它不能識別html, body元素上的height: 100%

例如,在這裏我將動態地創建20層的元件和設置window.scrolldiv的總高度,而這又是(應該是)相同的高度的document.body「高度」。

試試看:

(function load(d) { 
    var body = d.body, 
     i = 0, 
     div, 
     winheight = h(), 
     scroll = 0; 

    (function loop() { 
     if (i++ < 20) { 
      scroll = scroll + 20 + 100 + 5 + winheight; 

      div = document.createElement('div'); 
      div.style.height = winheight - 125 + 'px'; 
      div.className = 'block'; 
      div.innerHTML = 'DIV #' + i; 

      document.body.appendChild(div); 

      window.scroll(0, scroll); 

      setTimeout(loop, 2000); 
     } 
    })(); 

    function h() { 
     return Math.max(
      Math.max(body.scrollHeight, d.documentElement.scrollHeight), 
      Math.max(body.offsetHeight, d.documentElement.offsetHeight), 
      Math.max(body.clientHeight, d.documentElement.clientHeight) 
     ); 
    }  
})(document); 

​DemonstrationSource