2016-05-09 5 views
1

私はtranslateYに変数 "drawerHeight"を使用して、どれくらいの翻訳をしたいかを指定します。私は引き出しの内容が反応するように計画しているので、私はdivの現在の高さを取得する必要があります。Zeptoアニメーション関数で変数を使用する

これは私が何をしたいのか分かっているが、それを行う構文を理解することができない状況の1つです。

"drawerHeight"をem/pxの固定量で置き換えると、コードは現在動作しますが、これは私がやりたいことではありません。あなたはこの行を変更する必要が

var drawerHeight = $(".drawer").css('height'); 
    $(".toggle").click(function() { 
    drawerHeight 
    if (opened == false) { 
    $(".drawer").animate({ 
     translateY: '0', 

    }, 600, 'ease-in') 
    } 
    if (opened == true) { 
    $(".drawer").animate({ 
     translateY: '-drawerHeight', 

    }, 600, 'ease-out')  
    } 
    opened = !opened; 
    }) 

http://codepen.io/LivMac/pen/WwLEKe

+0

注意点としては:完全に応答するようにするために、私はまた、あなたがウィンドウのサイズを変更すると、内容が見えるようになりませんように、不透明度を増やす/減らすために必要。 –

答えて

2

:また

translateY: '-' + drawerHeight, 

translateY: '-drawerHeight', 

を、私は可能な.height()機能を使用するためにあなたをお勧めしますゼプトとo。こうすることで、エレメントの埋め込みも考慮されます。

var drawerHeight = $(".drawer").height(); 
translateY: '-' + drawerHeight + 'px', 

はここにペンです:http://codepen.io/thewisenerd/pen/zqeRQa

+0

ウィンドウのサイズが変更されても、引き出しが完全に隠れるわけではないため、ペンでリンクされたコードは問題を完全に解決しません。そのリンクの私の現在のソリューションは、サイズ変更されたウィンドウに対応します。しかし、要素を正しく隠すことができないため、要素が翻訳されてウィンドウのサイズが変更された後は表示されません。 私は要素の不透明度をゼロに設定する方法や、アニメーションが終了した後にのみ、その可視性を変更する方法が必要です。ちょうどその部分を今正しく行う方法がわかりません。 –

+0

@Livこれは、 '' drawerHeight'''の値を静的に割り当てるためです。 var drawerHeight = $( "。drawer")。css( 'height'); ''をオンクリック機能に移動し、毎回動的に計算されるようにします。 また、(トグルの間に)頻繁にウィンドウのサイズを変更する予定がある場合、要素の高さが変更されている可能性があるため、translateYを修正するonサイズ変更機能が必要です。 – thewisenerd

+0

この提案は役に立ちました。また、引き出しがすでに閉じられているかどうかを確認する条件を追加する必要がありました。それ以外の場合、ドロワーはウィンドウのサイズを変更すると閉じます。 –

関連する問題