0

我正在开发一个脚本来滚动智能手机中的页面(触摸屏幕)。我在 jQuery 和 jscrollto script中做过,但我想用纯 Javascript 来做。这是我的代码:

// ==UserScript==
// @name        touchNavigation
// @namespace   here
// @include     http://*

// @version     0.1
// @grant       none

// ==/UserScript==

document.body.addEventListener("mousedown", mouseDown);
document.body.addEventListener("mouseup", mouseUp)
var y0=0;
var y1=0;
var diferencia=0;

function mouseDown(event)
{
  y0=event.clientY;
}

function mouseUp(event)
{
    var i;
    y1=event.clientY;
    diferencia=y1-y0;


    if(diferencia>0){
        i=-10;
        while(diferencia>0){
            setTimeout(desplazamiento, 250, i);
            diferencia+=i;
        }
    }else{
        i=10;
        while(diferencia<0){
            setTimeout(desplazamiento, 250, i);
            diferencia+=i;
        }
    }

}

function desplazamiento(diferencia){


    window.scrollBy(0,diferencia);

}

该脚本有效。但位移是一步到位的。它应该更柔和。

这部分可能有什么问题?

 if(diferencia>0){
            i=-10;
            while(diferencia>0){
                setTimeout(desplazamiento, 250, i);
                diferencia+=i;
            }
        }else{
            i=10;
            while(diferencia<0){
                setTimeout(desplazamiento, 250, i);
                diferencia+=i;
            }
        }
4

1 回答 1

0

来自 userscript 的 ivan 提交了代码以在 javascript 中轻柔地滚动。你可以在这里看到。

http://userscripts.org/scripts/show/155832

我不知道如何工作,但工作完美。

于 2013-01-13T22:29:01.910 回答