自动滚动到目标,iOS 中的 jQuery 运行得太远

scroll automatically to target with jQuery in iOS running too far

本文关键字:运行 jQuery 中的 iOS 滚动 目标      更新时间:2023-09-26

我有一个锚点,当单击时,我会触发以下jQuery:

$(document).on('pageinit', function (event, ui) {
    var page = $(event.target);
    page.find('a.course_name').on('vclick', function() {
        page.stop().animate({ scrollTop : $(this).offset().top }, 400);
    }        
}

我在运行iOS 5的iPhone 6上发现的是,滚动的动画并没有像我想要的那样停在锚点的顶部。它有时会短暂停止,或者根据我之前在页面中滚动到的内容而运行。

我也在使用jQuery Mobile,但本质上page变量是可滚动区域。

我不知道您的HTML标记或CSS样式,但根据它,position可以返回与offset不同的结果。

试试用position()

page.stop().animate({ scrollTop : $(this).position().top }, 400);