所以我正在制作一个垂直滚动旋转木马,一切似乎都很好。我可以使用按钮和滑动手势水平滚动。在模拟器上。当我将网站放在实际的移动设备上时,我收到此错误:
TypeError: e.scrollTo is not a function. (In 'e.scrollTo(i,0)', 'e.scrollTo' is undefined)
就像我说的,这适用于多个浏览器和移动模拟器,但不适用于实际设备。这是代码:
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();
}
通过呼叫
ScrollTo(document.getElementById("sidewaysScroller"), scrollerWidth, 800);
注意:我使用的是ReactJS,我不愿意使用基于JQuery的解决方案。
我通过使用element.scrollLeft = val;
解决了这个问题,似乎工作得很好。