2014-09-29 61 views

回答

1
function animate(elem,time) { 
    if(!elem) return; 
    var to = elem.offsetTop; 
    var from = window.scrollY; 
    var start = new Date().getTime(), 
     timer = setInterval(function() { 
      var step = Math.min(1,(new Date().getTime()-start)/time); 
      window.scrollTo(0,(from+step*(to-from))+1); 
      if(step == 1){ clearInterval(timer);}; 
     },25); 
     window.scrollTo(0,(from+1)); 
    } 

var divVal = document.getElementById('yourElementID'); 
animate(divVal,1000); 

http://jsfiddle.net/p5g4wnj9/

让我知道如果它帮助!

+0

当我点击按钮时,它不会滚动。 – 2014-09-29 07:45:32

+1

缺乏对此的解释可能会吸引downvotes - 这对于未来寻找答案的人来说也是不利的。有几点意见足以说明这是如何工作的。 – mechalynx 2014-09-29 07:55:18

+0

@NavinRauniyar:在mac浏览器上测试了相同的代码。让我知道你正在测试哪个浏览器。 – 2014-09-29 08:08:20