2016-03-23 9 views
0

ユーザーが特定のポイント(デスクトップ上)にスクロールしたときにサイドバーをスティッキにするスクリプトがあると、現在はフッターがモバイルの下部に表示されない問題が発生します/タブレットデバイスではなく、無限にスクロール可能な空白スペースをフッターに与えます。スクリプトをデスクトップブラウザでのみ動作させる方法を教えてください。ブラウザがデスクトップ以外の場合にJavaScriptを無効にする

バリエーションがnavigator.userAgent.match == ""のデスクトップを対象にしようとしましたが、これは機能を無効にしています。

ユーザーがモバイル/タブレットから送信されている場合、JavaScript関数が読み込まれていないかのように、下部のページにフッターが表示されます。

$(function() { 
    var $sidebar = $(".related-articles"), 
    $window = $(window), 
    offset = $sidebar.offset(), 
    topPadding = 15; 

    $window.scroll(function() { 
    if ($window.scrollTop() > offset.top) { 
     $sidebar.stop().animate({ 
     marginTop: $window.scrollTop() - offset.top + topPadding 
     }, 1); 
    } else { 
     $sidebar.stop().animate({ 
     marginTop: 0 
     }, 1); 
    } 
    }); 
}); 

UPDATE:()場合は、最初に$(window).width() > 767 &&を添加します。声明はこの問題を修正した。

+1

キーワード: 'matchMedia' – CBroe

+1

あなたがいるようですね間違った問題を解決しようとしています。なぜなら、「なぜフッタは小さなデバイス上で無限にスクロール可能な空白を取得するのですか? –

+0

'if(window.innerWidth> 640)'は、ほとんどのモバイルデバイスを除外する必要があります。 – Lewis

答えて

2

私はあなたがこのような何かを探していると思う:

if ($(window).width() > 739) {  
//Code here for any desktop 
} 
else { 
    //Code here for mobile 
} 

あなたがここにデバイスの幅サイズを見つけることができます。

http://mydevice.io/devices/

関連する問題