スマートフォンのようにページをスクロールする(画面に触れる)スクリプトを開発しています。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);
}
スクリプトは機能します。しかし、変位は1ステップです。もっと柔らかくなるはずです。
このセクションの問題点は何でしょうか?
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;
}
}