2

我不想实现的是当按下按钮时页面滚动到某个位置。我可以在 Chrome 和 IE 等浏览器上使用它,但它似乎不适用于任何移动浏览器。

这是我使用的代码:

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

该事件确实会触发,只是不会发生滚动。

4

2 回答 2

6

感谢用户vohuman,这就是答案:

显然,移动浏览器滚动 body 元素,桌面浏览器滚动 html 元素。因此,该问题的解决方案是同时选择元素“html”和“body”,如下所示:

$("#programmaMenu").on("click", "div", function(event){
        event.preventDefault();
        $('html, body').stop().animate({
            scrollTop: $("#"+$(this).attr("rel")).position().top - 120
        }, 500, 'swing');
});
于 2013-08-28T09:07:25.010 回答
0

使用它并尝试,

    $(document).on("click", "#programmaMenu", function(event){
    event.preventDefault();
    $('html').stop().animate({
        scrollTop: $("#"+$(this).attr("rel")).position().top - 120
    }, 500, 'swing');
    });
于 2013-08-28T09:01:49.630 回答