2013-08-28 206 views
1

我想要實現的是當按下按鈕時滾動到某個位置的頁面。我在Chrome和IE等瀏覽器上工作,但似乎無法在任何移動瀏覽器上工作。如何使用jQuery在移動瀏覽器上動畫滾動?

這是我使用的代碼:不火,只有不會發生

$("#programmaMenu").on("click", "div", function(event){ 
     event.preventDefault(); 
     $('html').stop().animate({ 
      scrollTop: $("#"+$(this).attr("rel")).position().top - 120 
     }, 500, 'swing'); 
}); 

事件滾動。

+1

嘗試選擇'html'和'body'元素:'$('html,body')' – undefined

+0

謝謝,這就是答案 –

回答

4

與感謝用戶vohuman,這就是答案:

顯然,移動瀏覽器滾動體元素和桌面瀏覽器滾動的HTML元素。因此,問題的解決方案是像這樣選擇元素'html'和'body':

$("#programmaMenu").on("click", "div", function(event){ 
     event.preventDefault(); 
     $('html, body').stop().animate({ 
      scrollTop: $("#"+$(this).attr("rel")).position().top - 120 
     }, 500, 'swing'); 
}); 
+1

中刪除擺動參數什麼是'.stop()'這裏使用 –

+2

停止停止以前的動畫。 –

0

使用此和嘗試,

$(document).on("click", "#programmaMenu", function(event){ 
    event.preventDefault(); 
    $('html').stop().animate({ 
     scrollTop: $("#"+$(this).attr("rel")).position().top - 120 
    }, 500, 'swing'); 
    }); 
+0

事件發生,只有滾動不會發生。我會更新問題 –

+1

好的。嘗試在jquery的選擇器中添加html,body。 $('html,body')。stop()。animate({}); 否則你可以嘗試從函數 –

相關問題