2

w=window.open('','', 'width=1000,height=700');このウィンドウのサイズを 10/7 の比率で変更したいよりも、ウィンドウを開きます。例: 500/350; 100/70 ...

私はすでに最大サイズと最小サイズを持っています:

    var w;
function openwindow()
{
    w=window.open('','', 'width=1000,height=700');
    w.focus();

    resize(w);
}

function resize(w_obj) {


        w_obj.onresize = function(event) {
            width = w_obj.innerWidth;
            height = w_obj.innerHeight;

            // if popup width is greather then 1000px
            if (width > 1000) {
                w_obj.resizeTo(1000,700);
            }

            // if popup height is greather then 700px
            if(height >700) {
                w_obj.resizeTo(1000,700);
            }


            if (width < 500) {
                w_obj.resizeTo(500,350);
            }


            if(height < 350) {
                w_obj.resizeTo(500,350);
            }

        }


}
4

1 に答える 1

1

それがの引数の意味であるためouterHeight、使用する必要があります。resizeToただし、問題は、ユーザーがウィンドウの幅または高さのどちらをサイズ変更したかがわからないことです。したがって、参照として使用する次元と計算する次元がわかりません。

とにかく、あなたが欲しいのは次のとおりです。

  • width最小サイズとheight最大サイズの間で固定します。Math.minこれには/を使用できますMath.max
  • 高さを比率でwidth乗算するように設定します。7 / 10

http://jsfiddle.net/bSE9C/1/を参照してください。

var width = w_obj.outerWidth;
var height = w_obj.outerHeight;

width = Math.min(width, 1000);  // may not exceed 1000 maximum
height = Math.min(height, 700);

width = Math.max(width, 500);   // may not exceed 500 minimum
height = Math.max(height, 350);

height = width * 7 / 10;

w_obj.resizeTo(width, height);
于 2012-08-30T16:29:20.327 に答える