0

在 Foundation 6 中,jQuery scrollTop 不适用于移动设备:

var hpSecondSection = $('#hp-section-2'),
    fixedTopBar     = $('#header-top-bar');

    $('.scroll-down-bar').click(function() {

        $('html, body').animate({
            scrollTop: hpSecondSection.offset().top + fixedTopBar.innerHeight()
        }, 400);

    });

此问题由 提供.off-canvas-wrapper,它使移动菜单面板工作并具有overflow-x: hidden

我找不到有关此的解决方案.. 感谢您的帮助。

4

2 回答 2

0

您仍然可以使用.scrollY和使用outerHeight()(例如,如果浏览器栏被隐藏,则会重新计算)而不是height()

let scrollPercent = 100.0*window.scrollY / ($(document).height() - $(window).outerHeight());

粗鲁,但它对我有用。

于 2021-12-07T10:13:30.893 回答
0

根据http://blog.jonathanargentiero.com/jquery-scrolltop-not-working-on-mobile-devices-iphone-ipad-android-phones/,手机不知道 HTML 和 body 是什么。您应该使用链接中提供的解决方案来达到预期的效果,如下所示:

if (navigator.userAgent.match(/(iPod|iPhone|iPad|Android)/)) {
window.scrollTo(200,100) // first value for left offset, second value for top offset }else{ $('html,body').animate({ scrollTop: 100, scrollLeft: 200 }, 800, function(){ $('html,body').clearQueue(); }); }

于 2016-02-14T17:52:34.473 回答