2012-03-05 2 views
2

다음 페이지 코드는 내 페이지의 특정 지점에 애니메이션을 적용합니다. 이것은 모든 브라우저 및 Android 태블릿에서 완벽하게 작동합니다.jquery animate scrollTop 및 scrollLeft가 동시에 ipad에서 작동하지 않습니다.

if($("body").hasClass("mobile")){ 
    $scrollable.animate({scrollTop: getPosition()[0]}, scrollSpeed,scrollEffect); 
    $scrollable.animate({scrollLeft: getPosition()[1]}, scrollSpeed,scrollEffect); 
}else{ 
    $scrollable.animate({scrollTop: getPosition()[0],scrollLeft:getPosition()[1]},  scrollSpeed,scrollEffect); 
} 

모바일 버전 인 경우 scrollLeft와 scrollTop은 동시에 작동하지 않습니다. 그래서 나는 그것들을 구분하고 이것은 안드로이드에서 작동하지만 Ipad 장치 (IOS)에서는 작동하지 않는 것 같습니다. 그래서 위의 예제에서, 그는 scrollLeft를하지만 scrollTop은하지 않을 것입니다 (ipad에서). 별도로 그들은 완벽하게 작동합니다. 그래서 내 질문은 :

어떻게 ipad 두 애니메이션을할까요?

답변

1

웹킷은 일부 웹킷 빌드의 $ ("html") 요소 만 스크롤 할 수있는 것으로 보입니다. 이는 웹킷 클라이언트의 일부 버전에서만 발생하는 것으로 경고됩니다. 시도 :

$("html").animate({scrollLeft:100}) 

대신

$("body") 

의 이것에 대해 많은 문서를 찾을 수 있지만 내가 얼마 전에 만든 웹 사이트를 깨고 I가 맡아 봤다고 경우이 솔루션이 일 것을 발견 웹킷 몸 대신 HTML로 적용 스크롤 애니메이션 ....

그것이

+0

iOS 시뮬레이터에서 테스트 한 경우 비슷한 jQuery를 시뮬레이터에서는 사용할 수 없지만 실제 장치 (iPhone 6, iOS 9.3.5)에서는 제대로 작동합니다. – ashack

0

도움이되기를 바랍니다 내가했습니다 경험 난 내 플러그인을 개발했습니다 같은 문제 in (http://kirkas.ch/ascensor/).

body/html (특히 절대 위치)에서 scrollTop/scrollLeft를 동시에 애니메이트 할 때 iOS 브라우저에 버그가있는 것 같습니다. 대신 특정 컨테이너에 애니메이션을 적용 해보십시오.

+0

은 body 요소의 scrollTop 또는 scrollLeft가 여기에서 잘 작동한다는 것을 확인할 수 있습니다. 함께 화면이 튀어 오르고 흔들리지 만 아무것도 움직이지 않습니다. 질문에서 스크롤 가능한 $가 실제로'body' 요소인지 궁금합니다. – commonpike

+0

-1 제공된 링크는 403 – marcgg

+0

github : https://github.com/kirkas/Ascensor.js를 반환합니다. – jackocnr

관련 문제