2015-05-25 5 views
-1

Я нашел этот код, который я использую для автоматической прокрутки div на моей странице.Перенаправление после автоматической прокрутки javascript

Он работает отлично, как есть, но теперь я хотел бы добавить логику для перенаправления на URL-адрес через 5 секунд после завершения прокрутки.

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

Спасибо за ваш комментарий. В следующий раз я напишу, что я пробовал. В этом случае я застрял на части else {}. Я не знал, как остановить интервал. С ответом от 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 
    ); 
} 
Смежные вопросы