0

iPad や iPhone で "offset: -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 に答える