mi pare questo sia quanto serve in quella particolare pagina per effettuare lo scroll morbido
codice:
// ########## TO_TOP
isIE = document.all; // ブラウザ(IE)のチェック用
isN6 = document.getElementById; // ブラウザ(N6)のチェック用
isN4 = document.layers; // ブラウザ(N4)のチェック用
myObj = ""; // ブラウザオブジェクト退避用
// var Mac = navigator.appVersion.indexOf('Mac',0) != -1;
// var Win = navigator.appVersion.indexOf('Win',0) != -1;
// var IE = navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1;
// var NN = navigator.appName.indexOf("Netscape",0) != -1;
// var Moz = navigator.userAgent.indexOf("Gecko") != -1;
// var Vmajor = parseInt(navigator.appVersion); // ex. 3
// var Vminor = parseFloat(navigator.appVersion); // ex. 3.01
// var MacIE4 = ((Mac && navigator.appVersion.indexOf('MSIE 4.',0) != -1));
// var MacIE3 = ((Mac && navigator.appVersion.indexOf('MSIE 3.',0) != -1));
function CurrLeft() {
if (isIE) {
if(document.compatMode){
return document.documentElement.scrollLeft;
}else{
return document.body.scrollLeft;
}
} else if (window.pageXOffset) {
return window.pageXOffset;
} else {
return 0;
}
}
function CurrTop() {
if (isIE) {
if(document.compatMode=="CSS1Compat"){
return document.documentElement.scrollTop;
}else{
return document.body.scrollTop;
}
} else if (window.pageYOffset) {
return window.pageYOffset;
} else {
return 0;
}
}
var TimerOfScrollPage;
var currX;
var currY;
var unittime = 2;
function ScrollPage(toX, toY, breaking) {
if (TimerOfScrollPage) clearTimeout(TimerOfScrollPage);
if (!toX || toX < 0) {toX = 0;}
if (!toY || toY < 0) {toY = 0;}
if (!currX) {currX = CurrLeft();}
if (!currY) {currY = CurrTop();}
if (!breaking) {breaking = 5;}
// alert("stop " + toX + "," + toY + "," + currX + "," + currY);
currX += (toX - CurrLeft()) / breaking;
if (currX < 0) {currX = 0;}
currY += (toY - CurrTop()) / breaking;
if (currY < 0) {currY = 0;}
// alert("stop " + currX + "," + currY);
currX = Math.floor(currX);
currY = Math.floor(currY);
window.scrollTo(currX, currY);
// alert("stop " + currX + "," + currY );
if (currX != toX || currY != toY) {
// alert("set timer " + toX + "," + toY + "," + breaking);
TimerOfScrollPage = setTimeout("ScrollPage(" + toX + "," + toY + "," + breaking + ")", unittime);
}
}
function JumpToPageTop() {
ScrollPage(0, 0, 10);
}
//...
/* pagetop function
============================================================*/
function setPageTop(){
if(!document.getElementsByTagName) return false;
var pageTopList = document.getElementsByTagName("img");
for(var i=0;i<pageTopList.length;i++){
if(pageTopList[i].className.match("pagetop")){
pageTopList[i].onclick = function(){
JumpToPageTop();
return false;
}
}
}
}
//...
/* onload function
============================================================*/
function setOnLoad(){
// setRollOver();
setPageTop();
}
window.onload = setOnLoad;
fai meglio a trovare qualche esempio spiegato, magari ricercando in google con chiave
javascript smooth anchor scroll
ci sono vari script gia' pronti che operano su tutti gli spostamenti interni al documento via ancore (mentre questo riguarda solo il back to top),
alcuni gia' studiati per essere utilizzati con le piu' diffuse librerie e framework
(nel caso tu ne stia gia' utilizzando una)
ciao