2017-12-25 5 views
0

그래서 저는 수직 스크롤링 컨베이어를 만들고 있으며 모든 것이 잘 작동하는 것 같습니다. 두 단추와 스 와이프 제스처를 사용하여 가로로 스크롤 할 수 있습니다. 시뮬레이터에. 내가 말했듯이 여러 브라우저와 모바일 시뮬레이터에서 작동,element.scrollTo 모바일에서 작동하지 않습니다.

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

하지만, 실제 장치에서 작업 밤은 : 내가 실제 모바일 장치의 웹 사이트를 위로 넣었을 때, 나는이 오류가 발생합니다. 내가 ReactJS를 사용하고, 나는 JQuery와 기반 솔루션을 사용하기를 꺼려 이니라고

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); 

를 통해 다음은 코드입니다.

+0

어쩌면 말하기는 쉽지만 'element'를 시작점으로 사용하십시오. – Kootoopas

+0

^또는'JSON.stringify (element)'를 호출하고 모바일 장치의 콘솔에 액세스 할 수없는 경우 body에 추가하십시오. – Kootoopas

+0

@Kootoopas 요소를 확실히 찾았지만, 체크하지는 않았지만 좋은 아이디어였습니다. –

답변

0

element.scrollLeft = val;을 사용하여이 문제를 해결했지만 꽤 잘 작동하는 것 같습니다.

관련 문제