"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>runcode</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Author" content="Sheneyan" />
<script>
function s2top(){
var a = document.getElementsByTagName('a');
var l = a.length;
for (var i = 0 ; i < l ; i ++){
var ai = a[i];
if (/#header$/.test(ai.href)){
ai.onclick = function(){
var o = this;
var ot = o.offsetTop;
for (var t = 0 ; t < 20 ; t ++){
setTimeout("scrollBy(0,-" + parseInt(ot / 20) + ")",t * 50 + 1);
}
return false;
}
}
}
}
</script>
<body onload="s2top()">
</body>
<p>
<script>
for (var i = 0 ; i < 1000 ; i ++)
document.write(i+"<br>");
</script>
</p>
<a href="#header">go to 头</a>
</body>demo中的p中的script改大或改小看看。。。移动到top的时间始终是一定的,你也可以设置一个阀值,在页面高度到达这个阀值之前,移动的总时间是多少,当页面高度超过这个数时,移动的总时间反而以一定比例减小,自己试试看吧... http://www.corange.cn/archives/2008/05/1107.html