2016-09-13 5 views
0

私は2つの関数を持っており、画面の幅に応じて呼び出すようにします。画面の幅に応じて関数を呼び出すにはどうすればよいですか?

var winWidth = $(window).width(); 

var sections = function() { 
    $('.image').each(function(){ 
     var $this = $(this), 
     x = $this.find('img').width() 
     $this.width(x); 
    }); 
}; 

var sectionsMobile = function() { 
    $('.image').find('img').css({ 
      'height': 'auto', 
      'width': '100%' 
     }); 
}; 

function checkSize() { 
    if (winWidth >= 800) { 
     sections(); 
    } else { 
     sectionsMobile(); 
    } 
} 
jQuery(window).on('load resize', checkSize); 

ページの負荷を、それが動作し、CSSが適用されます。

これは私がしようとしているものです。しかし、800px境界の間でサイズを変更しても機能は切り替わりません。ここ

全デモ:http://codepen.io/sol_b/pen/PzgdWy

感謝すべてのヘルプ。

+1

を、あなたは[ '' $(ウィンドウ).on( 'サイズを変更'、yourFunc)]をチェックアウトする必要があります(https://でAPI .jquery.com/resize /)。 – blex

答えて

1

この試してみてください:あなたの関数は、ウィンドウのサイズ変更に適用されなければならない場合

$(window).on("load resize",function(){ 

    if($(this).width() >= 800) 
     sections(); 

    else 
     sectionsMobile(); 

}); 
0

これを追加します。

(window).resize(function() { 
if (winWidth >= 800) { 
     sections(); 
    } else { 
     sectionsMobile(); 
    } 
}); 
2

最初の行が永続的にキャッシュされている:

var winWidth = $(window).width(); 

ちょうど checkSize()関数の中に移動します。

+0

これは動作していません。 http://codepen.io/sol_b/pen/GjoGRa。 – sol

+1

私にとってうまくいっているようです。 –

関連する問題