2015-06-17 7 views
1

Я нашел эффект «В начало», написанный на JavaScript. Но есть кое-что в коде, который я не понимаю. Спасибо большое!Использование JavaScript использует «Вернуться к началу»

window.onload = function() { 
    var oBtn = document.getElementById('btn1'); 
    var timer=null; 

    oBtn.onclick= function() { 
     timer=setInterval(function() { 
      var scrollTop = document.documentElement.scrolltop || document.body.scrollTop; 
      var iSpeed = Math.floor(-scrollTop/8);//what does this mean? 
      if(scrollTop===0) 
      { 
       clearInterval(timer); 
      } 

      document.body.scrollTop = document.documentElement.scrollTop = scrollTop + iSpeed; 
     }, 30); 
    }; 
}; 
+2

В коде есть комментарий, в котором говорится: «Что это значит?» –

+0

Вы должны сказать, что в вашем вопросе яснее. Большинство людей, которые понимают код, не читают комментарии, поскольку они уже понимают, что будет делать код. –

+0

убедитесь, что на верблюде, например 'scrollTop' – Shashank

ответ

1

iSpeed лучше всего рассматривать как скорость. Когда документ прокручивается вверх, он получает такую ​​скорость, которая постепенно становится меньше по мере приближения к целевому элементу.

Math.floor(-scrollTop/8) В этом случае вы постоянно прокручиваете 1/8 расстояния между своим положением и этим элементом.

+0

Значит, каждый раз, когда scrollTop минус 1/8 самого себя, пока он не станет равным 0? – roth514

+0

@ roth514 бинго! – Ayrit

2

-scrollTop означает 0-scrollTop.

-scrollTop/8 означает 0-scrollTop делится на 8.

Math.floor() раундов вниз до ближайшего целого числа.

Смежные вопросы