0

私はcssディメンションと同じクラス名を共有するように設定されています。特定のクリックする と、画面の幅と高さにそれを塗りつぶし、他のものをオーバーレイし<div>ます。正常に動作します。しかし、問題は、もう一度クリックすると、元のサイズに戻るために元の寸法が失われることです。以下は私のコードです:
<div>s

 var isFullscreen = false;
  $('.item').click(function(){
    var d = {};
    var speed = 900;
    if(!isFullscreen){ // MAXIMIZATION
        d.width = $(window).width();;
        d.height = $(window).height();; 
        isFullscreen = true;
        $('.item').hide();
        $(this).show();
        $(this).animate(d,speed)    
    }
    else{ // MINIMIZATION            
        **d.width = $(this).css('width');**
        **d.height = $(this).css('height');**            
        isFullscreen = false;
        $(this).animate(d,speed);
        $('.item').show();
    }
    })

元の寸法を保存して2回目のクリックで使用することにより、静的変数に似たものを使用しようとしています。そして私はjavascriptに静​​的変数がないのを見ました。それからこれを達成する方法。

4

3 に答える 3

0

d現在、アイテムがクリックされて空のオブジェクトになるたびに、変数を再宣言しています。宣言をクリック関数の外側に移動すると、var d = {}それを実行できるようになります。

于 2012-10-04T16:53:30.430 に答える
0

プロトタイププロパティを使用してみてください。これにより、そのインスタンスの追加に同じ値が関連付けられていることを確認します。

function d(){
}

d.prototype.width=$(window).width();
d.prototype.height=$(window).width();
于 2012-10-04T17:06:20.737 に答える
0

サイズを変更する前に高さと幅を保存し、後で使用することでこれを行うことができました。変更したコードは次のとおりです。わかります。これらの行に**を追加しました。

var isFullscreen = false;
  var d = {};
  **var test = {};**
  $('.item').click(function(){
    var speed = 900;
    if(!isFullscreen){ // MAXIMIZATION
        **test.width = $(this).css('width');**
        **test.height = $(this).css('height');**
        d.width = $(window).width();
        d.height = $(window).height();
        isFullscreen = true;
        $('.item').hide();
        $(this).show();
        $(this).animate(d,speed)    
    }
    else{ // MINIMIZATION            
        d.width = test.width;
        d.height = test.height;            
        isFullscreen = false;
        $(this).animate(d,speed);
        $('.item').show();
    }
})

皆さん、サポートしてくれてありがとう。

于 2012-10-04T18:42:33.133 に答える