2015-05-25 50 views
-1

我發現這個代碼,我用它來自動滾動頁面上的div。自動滾動後重定向javascript

它完美的工作原理,但現在我想添加邏輯重定向到5秒滾動完成後的url。

ScrollRate = 50; 

function scrollDiv_init() { 
    DivElmnt = document.getElementById('MyDivName'); 
    ReachedMaxScroll = false; 
    DivElmnt.scrollTop = 0; 
    PreviousScrollTop = 0; 
    ScrollInterval = setInterval('scrollDiv()', ScrollRate); 
} 

function scrollDiv() { 
    if (!ReachedMaxScroll) { 
     DivElmnt.scrollTop = PreviousScrollTop; 
     PreviousScrollTop++; 
     ReachedMaxScroll = DivElmnt.scrollTop >= (DivElmnt.scrollHeight - DivElmnt.offsetHeight); 
    } 
} 
+0

你試圖做什麼來完成這件事?試着理解你使用的代碼,這會改善你。 – ahmedsafan86

+0

感謝您的評論。下次我會寫我所嘗試過的。在這種情況下,我被卡在其他部分{}。我不知道如何停止這段時間。有了Zee的回答,我搜索了更多關於clearInterval(ScrollInterval)的信息;並瞭解發生了什麼事情。 –

回答

0

如果我理解正確,一旦滾動完成,您想要轉到其他頁面。像這樣做:

function scrollDiv() { 

if (!ReachedMaxScroll) { 
    DivElmnt.scrollTop = PreviousScrollTop; 
    PreviousScrollTop++; 

    ReachedMaxScroll = DivElmnt.scrollTop >= (DivElmnt.scrollHeight - DivElmnt.offsetHeight); 
} 
else{ 
    clearInterval(ScrollInterval); 
    setTimeout(function(){ 
    window.location.href = "path/to/your/file"; 
    },5000)//In 5 seconds 
} 
} 
+0

非常感謝,這正是我所尋找的! –

+0

@TheoSchipper。很高興它對你有效。 :) – Zee

0

只需用您的代碼替換。

function scrollDiv() { 
    var ScrollRate = 50; 


    var DivElmnt = document.getElementById('MyDivName'); 
    var ReachedMaxScroll = false; 
    var PreviousScrollTop = 0; 

    divElmnt.scrollTop = 0; 

    setTimeout(
     function() { 
      if (!ReachedMaxScroll) { 
       DivElmnt.scrollTop = PreviousScrollTop; 
       PreviousScrollTop++; 

       ReachedMaxScroll = DivElmnt.scrollTop >= (DivElmnt.scrollHeight - DivElmnt.offsetHeight); 
      } 

      setTimeout(function() { 
       window.location.replace("http://stackoverflow.com"); 
      }, 5); 
     }, 
     ScrollRate 
    ); 
}