2017-12-25 4 views
0

私は垂直スクロールカルーセルを作っており、すべてがうまくいっているようです。私は両方のボタンとスワイプジェスチャーを使って水平にスクロールすることができます。シミュレーターで。私が言ったように、これは複数のブラウザ上で、モバイルシミュレータ上で動作し、element.scrollToモバイルで作業していません

TypeError: e.scrollTo is not a function. (In 'e.scrollTo(i,0)', 'e.scrollTo' is undefined)

が、実際のデバイスに取り組んでイマイチ:私は、実際のモバイルデバイス上のウェブサイトを上に置くとき、私はこのエラーを取得します。ここでは、コードは次のようになります。

ScrollTo(document.getElementById("sidewaysScroller"), scrollerWidth, 800); 

注経由で呼び出さ

Math.easeInOutQuad = function (t, b, c, d) { 
    t /= d/2; 
    if (t < 1) { 
    return c/2*t*t + b 
    } 
    t--; 
    return -c/2 * (t*(t-2) - 1) + b; 
}; 

export default function ScrollTo(element, to, duration) { 
    var start = element.scrollLeft, 
    change = to - start, 
    currentTime = 0, 
    increment = 20; 

    var animateScroll = function(){ 
     currentTime += increment; 
     var val = Math.easeInOutQuad(currentTime, start, change, duration); 
     element.scrollTo(val, 0); 
     if(currentTime < duration) { 
      setTimeout(animateScroll, increment); 
     } 
    }; 
    animateScroll(); 
} 

:私はReactJSを使用して、と私はjQueryのベースのソリューションを使用するには消極的です。

+0

おそらく、「要素」を開始点として記録するのは簡単です。 – Kootoopas

+0

^それとも 'JSON.stringify(element)'を呼び出し、モバイルデバイスのコンソールにアクセスできない場合はbodyに追加します。 – Kootoopas

+0

@Kootoopasそれは間違いなく要素を見つけました。 –

答えて

0

element.scrollLeft = val;を使って解決しましたが、かなりうまくいくようです。

関連する問題