2011-01-31 39 views
3

我正在使用以下jQuery代碼來在頁面上垂直滾動某個位置。這在所有瀏覽器上都可以正常工作,並且不會影響水平滾動位置,但是當我在iphone上(在移動Safari上)嘗試它時,除了垂直滾動到正確的位置外,它還一直向左滾動。同樣,如果我使用scrollleft,它將水平移動到正確的位置,但會返回到頁面的頂部。它在其他所有方面都可以正常工作,而且我無法在任何地方找到任何有關此問題的參考,如果有人遇到此問題,我會非常感激,因爲我會陷入困境!我無法一個接一個地執行(scrollleft和scrollright),因爲我最後一次將取消前一個設置的滾動位置。jquery的scrolltop和scrollleft完美的工作,但在iPhone上,他們都滾動其他酒吧它的主場?

if($.browser.opera) 
{ 
    $('html').animate(
    { 
     scrollTop: yscroll - 10 
    }, 
    1000); 
} 
else 
{ 
    $('html, body').animate(
    { 
     scrollTop: yscroll - 10 
    }, 
    1000); 
} 

非常感謝您的幫助!

戴夫

回答

0

也許(如果動畫scrollLeft或scrollTop的)值,然後動畫都scrollLeft和scrollTop的當用戶代理告訴你這是一個iphone

var isiPhone = navigator.userAgent.toLowerCase().indexOf("iphone"); 
var isiPad = navigator.userAgent.toLowerCase().indexOf("ipad"); 
var isiPod = navigator.userAgent.toLowerCase().indexOf("ipod"); 

這是你能先取得當前scrollLeft不是最好的,因爲你會有不同的動畫,但至少你會在相同的位置結束

有一些問題與iphone /墊iPad/jQuery.animate(scroll) issues

相關問題