<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="js/tween.js" ></script>
<style>
*{
margin: 0;padding: 0;
}
.test{
border: 1px red solid;
height: 98px;
line-height: 100px;
}
#down{
width: 100px;
line-height: 100px;
background: skyblue;
}
#top{
width: 100px;
line-height: 100px;
text-align: center;
background: skyblue;
position: fixed;
right: 10px;
bottom: 10px;
}
</style>
</head>
<body>
<input type="button" id="down" value='點擊向下滾動'/>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<input type="button" id="top" value="點擊返回頂部" />
<script type="text/javascript">
//獲取當前TOP 還有down的ID
var oDown = document.getElementById('down');
var oTop = document.getElementById('top');
//兼容性寫法
function setScrollerPos(aTop){
document.body.scrollTop = aTop;
document.documentElement.scrollTop = aTop;
}
function getScrollerPos(){
return document.body.scrollTop||document.documentElement.scrollTop;
}
//給按鈕綁定一個事件,運動tween函數
oDown.onclick = function(){
//起始值
var start = 0;
//結束值
var end = 500;
//過程
var change = end - start;
//步數
var step = 0;
//最大走的步數
var stepMax = 30;
//設置一個計時器
var timer = setInterval(function(){
//步數增加
step++;
if(step>=stepMax){
//暫停計時器還有清空計時器
clearInterval(timer);timer=null;
}
//tween函數曲線
var t = Tween.Cubic.easeOut(step,start,change,stepMax);
//在可滾動條調用t
setScrollerPos(t);
}, 30);
}
//同上
oTop.onclick = function(){
var start = getScrollerPos();
//滾動條返回頂部就是滾動條位置等于0
var end = 0;
var change = end - start;
var step = 0;
var stepMax = 30;
var timer = setInterval(function(){
step++;
if(step>=stepMax){
clearInterval(timer);timer=null;
}
var t = Tween.Cubic.easeOut(step,start,change,stepMax);
setScrollerPos(t);
}, 30);
}
</script>
</body>
</html>