0

在 iPad 或 iPhone 上是否可以不调用“偏移量:-195”?

        $(window).bind("load", function() {

    $(document).on('click', 'a[href*="#"]', function() {
        var slashedHash = '#/' + this.hash.slice(1);
        if (this.hash) {

            if (slashedHash === location.hash) {
                $.smoothScroll({
                    scrollTarget: this.hash,
                    easing: 'easeOutQuart',
                    speed: 2000,
                    offset: -195
                });
            } else {
                $.bbq.pushState(slashedHash);
            }

            return false;
        }
    });

    $(window).bind('hashchange', function(event) {
        var tgt = location.hash.replace(/^#\/?/, '');
        if (document.getElementById(tgt)) {
            $.smoothScroll({
                scrollTarget: '#' + tgt,
                easing: 'easeOutQuart',
                speed: 2000,
                offset: -195

            });
        }
    });

    $(window).trigger('hashchange');
});

谢谢你的帮助。

4

1 回答 1

0

尝试这个...

var offset = -195;

var is_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);
if (is_uiwebview) {
    offset = 0;
}

$(window).bind("load", function() {
    $(document).on('click', 'a[href*="#"]', function() {
        var slashedHash = '#/' + this.hash.slice(1);
        if (this.hash) {
            if (slashedHash === location.hash) {
                $.smoothScroll({
                    scrollTarget: this.hash,
                    easing: 'easeOutQuart',
                    speed: 2000,
                    offset: offset
                });
            } else {
                $.bbq.pushState(slashedHash);
            }
            return false;
        }
    });
});

$(window).bind('hashchange', function(event) {
    var tgt = location.hash.replace(/^#\/?/, '');
    if (document.getElementById(tgt)) {
        $.smoothScroll({
            scrollTarget: '#' + tgt,
            easing: 'easeOutQuart',
            speed: 2000,
            offset: offset
        });
    }
});

我刚刚在开头添加了检查用户代理以检测 AppleWebKit 设备的代码部分。该变量offset最初设置为 -195,如果Apple 设备,则设置为 0。然后将该值用于对 的调用smoothScroll

我用来检测浏览器类型的代码直接取自这个问题的答案......

通过 javascript 检测 ipad/iphone webview

于 2013-09-18T10:34:27.913 回答