2013-08-28 161 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({}); 否则你可以尝试从函数 –

相关问题