2016-05-24 13 views
0

ブラウザのサイズを変更すると機能するjavascriptのサイズ変更機能がありますが、特定のサイズでブラウザウィンドウを開始した場合、コンテンツのサイズを変更するにはどうすれば入手できますか?あなたはコードペンhttp://codepen.io/celli/pen/pyMMWeでこれを見ることができます私はブラウザのウィンドウを調整すると私のコンテンツのサイズが変更されます - ただし、小さいサイズ(840pxより小さい)からブラウザでcodePenをリフレッシュすると、コンテンツは "pre"それを実現するためのコードを追加するにはどうすればよいですか?最初の実行時にJavaScriptのサイズを変更する

var maxWidth = $('#outer').width(); 
var maxHeight = $('#outer').height(); 

var windowWidth = $(window).width(); 
var windowHeight = $(window).height(); 

// media query 
var mediaQuery = window.matchMedia("(max-width: 828px)"); 
mediaQuery.addListener(setAnimation); 

// First run 
setAnimation(mediaQuery); 

function setAnimation(mediaQuery) { 
    if (mediaQuery.matches) { 
    // resize func below 
    var maxWidth = $('#outer').width(); 
    var maxHeight = $('#outer').height(); 

    var windowWidth = $(window).width(); 
    var windowHeight = $(window).height(); 

    $(window).resize(function(evt) { 
     var $window = $(window); 
     var width = $window.width(); 
     var height = $window.height(); 
     var scale; 

     // early exit 
     if(width >= windowWidth && height >= windowHeight) { 
     $('#outer').css({'-webkit-transform': ''}); 
     $('#wrappie').css({ width: '', height: '' }); 
     return; 
     } 

     scale = Math.min(width/windowWidth); 

     $('#outer').css({'-webkit-transform': 'scale(' + scale + ')'}); 
     $('#wrappie').css({ width: maxWidth * scale, height: maxHeight * scale }); 
    }); 
    } else { 
    } 
} 

答えて

2

最良の方法は、関数に変換します。

$(window).resize(reszEvt); 
$(reszEvt); // Or the below: 
$(document).ready(reszEvt); 

CodePen:

$(window).resize(function(evt) { 
    var $window = $(window); 
    var width = $window.width(); 
    var height = $window.height(); 
    var scale; 

    // early exit 
    if(width >= windowWidth && height >= windowHeight) { 
    $('#outer').css({'-webkit-transform': ''}); 
    $('#wrappie').css({ width: '', height: '' }); 
    return; 
    } 

    scale = Math.min(width/windowWidth); 

    $('#outer').css({'-webkit-transform': 'scale(' + scale + ')'}); 
    $('#wrappie').css({ width: maxWidth * scale, height: maxHeight * scale }); 
}); 

で:これら二つを

function reszEvt(evt) { 
    var $window = $(window); 
    var width = $window.width(); 
    var height = $window.height(); 
    var scale; 

    // early exit 
    if(width >= windowWidth && height >= windowHeight) { 
    $('#outer').css({'-webkit-transform': ''}); 
    $('#wrappie').css({ width: '', height: '' }); 
    return; 
    } 

    scale = Math.min(width/windowWidth); 

    $('#outer').css({'-webkit-transform': 'scale(' + scale + ')'}); 
    $('#wrappie').css({ width: maxWidth * scale, height: maxHeight * scale }); 
} 

をそして与える置き換えhttp://codepen.io/anon/pen/yOmmjo

+0

ヒュム、私はその作業を見ていません。私は私のcodePenを調整しましたが、小さなウィンドウサイズ(840px未満)でブラウザをリフレッシュすると結果が表示されませんでした...私は積極的にサイズを変更していなくてもウィンドウ幅にサイズを変更したいブラウザウィンドウ...私のCodePenをフォークできますか、それが動作しているかどうかを教えてください。 – celli

+0

私はそれが働いているのを見ることができます...それが私が答えとして投稿した理由です。 ':)'あなたはイベントハンドラを外に持ち出す必要がありますか?あなたは 'setAnimation()'の権利を実行していますか? –

+0

これは以前のようにウィンドウのサイズを変更したときに機能しますが、小さなブラウザのウィンドウサイズでChromeでページをリロードすると、500pxと言うように...水平スクロールバーが表示され、私のブラウザウィンドウの幅にリサイズされます。私はこのcodePenの更新されたコードを持っていますhttp://codepen.io/celli/pen/pyMMW – celli

関連する問題