2016-11-16 6 views
1

私はいくつかのjQueryを作成していますので、誰かが2menuボタンをクリックするとオフキャンバスのnav-barが表示されますが、うまくいかないようで、誰かが開く/閉じるときに滑らかなスライド効果を得る方法メニューご協力いただきありがとうございスムーズにメニューをスライド

私のjQueryのです:。。

$(".menutrigger").click(function() { 
    $(".nav").toggleClass("show-nav"); 
    $(".page-wrap").toggleClass("page-wrap-menu", { direction: "left" }, 1000); 
}); 

ウェブサイト:

http://ubie-global.ubieportal.co.uk/

答えて

7

あなたは0123を追加することによって、これを達成することができますクラスpage-wrapの要素への

.page-wrap { 
    min-width: 100%; 
    min-height: 100%; 
    position: relative; 
    top: 0; 
    bottom: 100%; 
    left: 0; 
    z-index: 1; 

    /* Transition */ 
    transition: left ease-in-out 0.3s; 
} 

CSSトランジションCSSプロパティを変更するときにアニメーションの速度を制御する方法を提供します。プロパティの変更を直ちに有効にするのではなく、プロパティの変更を一定期間にわたって発生させることができます。たとえば、要素の色を白から黒に変更すると、通常は変更が瞬時に行われます。 CSSトランジションを有効にすると、加速カーブに続く時間間隔で変更が行われ、そのすべてをカスタマイズできます。

出典:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions

を編集し、更新に応じて

追加。

あなたは、いくつかのCSSの変更を加えることでそれを行うことができます
.nav { 
    list-style: none; 
    background: #fff; 
    width: 360px; 
    height: 100%; 
    position: fixed; 
    z-index: 999; 
    top: 0; 
    display: block; 
    right: 0; 
    transform: translateX(360px); 
} 

.page-wrap { 
    min-width: 100%; 
    min-height: 100%; 
    position: relative; 
    top: 0; 
    bottom: 100%; 
    z-index: 1; 
    transform: translateX(0px); 
    overflow: visible; 
    transition: all 0.9s ease; 
    overflow: visible !important; 
} 
+2

また、私はtransformを使用する価値があります:translateY(0px)transform:translateY(-360pxpx)これはgpuでスローされるように(左とは対照的に) –

+0

@AndrewBone絶対に正しいです。デバイスがこの目的のために設計されるようにする方がはるかに優れています:) – Kyle

+0

@AndrewBoneこれは、いくつかのデバイスで起こりがちなアニメーション中のジッタを防ぐので、大きなアドバイスです。 –

0

.nav { 
list-style: none; 
background: #fff; 
width: 360px; 
height: 100%; 
position: fixed; 
z-index: 0; 
right: -360px; // changed from 0 to -360px 
top: 0; 
/* display: none; */ 
} 

.show-nav { 
/* display: block !important; */ 
right: 0; // add this line 
} 

より

.page-wrap, .nav { 
transition: all 0.2s ease; 
} 
+0

パーフェクト。唯一のことは、 ".nav"が何らかの理由で表示されていないことです。http://ubie-global.ubieportal.co.uk/ –

+0

申し訳ありませんが、私は右に追加しませんでした。 "show-nav"は申し訳ありません。私の失敗 –

+0

偉大な、正しい答えをマークすること自由に感じてください – Okba

0

上記の答えのようなトランジションを使用しますが、leftrightをアニメーション化していないこれを追加それは本当に遅く、遅れます。代わりにtransformを使用してください。

+0

私はこれを行っている。唯一のことは、その後に表示するNAVを取得することはできませんhttp://ubie-global.ubieportal.co.uk/ –

+0

そうです。問題は0です。左を使用:-360ピクセル – alvarlagerlof

関連する問題