2017-02-09 10 views
0

画面のサイズを変更すると、jQueryがリセットされないのはなぜですか?私はそれが768pxよりも大きくなるようにスケーリングしていても、ボディ上にパディングトップを保持しているようです。jQueryリセット画面サイズに基づいてヘッダーのパディングを削除します。

jsを添付しておけば十分です。 HTMLCSSが必要な場合は、私は助けになるためのフィドルを設定します。

(function ($) { 
    $(function() { 
    var headerHeight = $('.stickyHeader').innerHeight(); 

    $(window).resize(function() { 
     if ($(window).width() < 768) { 
     if ($('.stickyHeader')[0]){ 
     // do something for small screens 
     $('body').css(
      { 
      'padding-top': headerHeight + 'px' 
      } 
     ); 

     $(window).bind('resize', function() { 
      $('body').css(
      { 
       'padding-top': headerHeight + 'px' 
      } 
     ); 
     }); 
     $("body").offset({ top: 0, left: 0 }); 
     } 
} 


     else if ($(window).width() >= 768 && $(window).width() <= 992) { 
     // do something for medium screens 
     } 
     else if ($(window).width() > 992 && $(window).width() <= 1200) { 
     // do something for big screens 
     } 
     else { 
     // do something for huge screens 
     } 
    }); 
    }); 
})(window.jQuery); 
+0

'jQuery.bind()は' 3.0で推奨されていません。 '.on()'を使うべきです。あなたはイベントがまったく起こったかどうか確認しましたか? CSSのメディアクエリを使用できない理由はありますか? – Sami

+0

ここにjsfiddleを置くことはできますか? –

+0

私は今夜ここでコードパッドで作業します。私はいくつかのことをする必要があります。私の答えで見つけたいくつかの問題は、サイズ変更時にjQueryが起動するだけです。どういうわけか、ページの読み込みにサイズ変更を組み合わせる必要があります。そのため、ページがモバイルデバイスに読み込まれた場合、すぐに本文に埋め込みが追加され、サイズ変更は必要ありません。 – user2025730

答えて

0

私はもう少し時間をかけて、他の画面サイズの追加機能を試してみました。これは私がそれが必要なもののために働くようです。私はそれが同様の状況で他人を助けることができることを願っている。

(function ($) { 
    $(function() { 
    var headerHeight = $('.stickyHeader').innerHeight(); 

    $(window).resize(function() { 
     if ($(window).width() < 768) { 
     if ($('.stickyHeader')[0]){ 
     // do something for small screens 
     $('body').css(
      { 
      'padding-top': headerHeight + 'px' 
      } 
     ); 

     $(window).bind('width', function() { 
      $('body').css(
      { 
       'padding-top': headerHeight + 'px' 
      } 
     ); 
     }); 
     $("body").offset({ top: 0, left: 0 }); 
     } 

} 


     else if ($(window).width() >= 768 && $(window).width() <= 992) { 
     // do something for medium screens 
     $('body').css(
      { 
      'padding-top': 0 
      } 
     ); 
     } 
     else if ($(window).width() > 992 && $(window).width() <= 1200) { 
     // do something for big screens 
     } 
     else { 
     // do something for huge screens 
     } 
    }); 
    }); 
})(window.jQuery); 
0

jqueryは必要ありません。css media queryで十分です。 http://www.w3schools.com/css/css_rwd_mediaqueries.asp

@media only screen and (min-width: 768px) { 
.header{ 
    padding:0; 
} 
} 
+0

ヘッダーはコンテンツ管理されており、常に同じサイズではありません。私はその高さを見つけるためにjQueryが必要です。問題は、ブラウザが動作するようにブラウザのサイズを変更したときでしたが、もう一度大きなサイズにしたときに、innerHeightを取得するためにjavascriptを起動したことはありませんでした。 – user2025730

関連する問題