ここでは動作します。
var notificationTimer = 2000; // miliseconds to hide the notification alert
$('.submit-button').on('click', function() {
$('.notification-alert').addClass('notification-alert--shown');
setTimeout(function() {
$('.notification-alert').removeClass('notification-alert--shown');
}, notificationTimer)
});
.notification-alert {
color: white;
bottom: 20px;
right: 20px;
position: fixed;
background-color: #f4b251;
border-bottom: 4px solid #E89F3C;
color: #fff;
padding: 20px;
border-radius: 14px;
transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
transform: translateX(100%);
transition: all 500ms;
opacity: 0;
z-index: -1;
}
.notification-alert--shown {
opacity: 1;
transform: translateX(0);
transition: all 500ms;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="submit-button">show notification</button>
<div class="notification-alert">
<span>Great job, you're under way!</span>
</div>
私はいくつか変更されました:クラスがそのあなたの要素の異なる状態を表しているので、それはCSSトランジションのためのクラスを使うようにするとよいでしょうので、私はクラスにnotification-alert
を変更
- を〜へと移行します。
- さらに、この要素が表示されているときの状態を表す新しいクラス
notification-alert--shown
を追加しました。
- ボタンをクリックしてトランジションを開始すると、jqueryを使用してクラス
notification-alert--shown
を追加しました。 CSSトランジションの仕事を(良い習慣として)に、別のCSSクラスからフレームを追加することによって:
は、今、私たちは、CSSの遷移がどのように働くかを説明する必要があります。移行を起こすには、少なくとも2つのクラスが必要です。この場合、それはnotification-alert
とnotification-alert--shown
です。これらのクラスは、プロパティーtransform
およびopacity
と異なるだけです(つまり、競合するプロパティーを持っています)。
これらのプロパティは2つのクラスで異なるため、変更するときに2つのクラスを切り替える(つまり、フレームを追加する)ようにCSSに指示できます。私はクラスnotification-alert--shown
を追加するとき
だから、私は新しい状態に状態{opacity: 0; transform: translateX(100%);}
から{opacity: 1; transform: translateX(0);}
を移行するためにフレームを追加するには、ブラウザを言っていると私は、私はすべての異なるを移行したいブラウザを教えてプロパティにall
を追加してtransition: all ...
に追加します。
また、コメントでいくつかの質問を育てた:これは偉大な作業
。しかし、それは単にフェード効果を示しています。しかし、なぜこの種のアニメーションは機能していないのですか?遷移タイミング関数:立方ベジェ(0.175、0.885、0.32、1。275)。
これは、あなたがtransition-timing-function
プロパティについて少し誤解していると思うようになります。 transition-timing-function
は、要素がどのように正確に移動するかとは関係ありません。あなたが求めた遷移がどのように時間とともに適用されるかにのみ関係します。遷移タイミングプロパティhereについて詳しく読むことができます。
そして、あなたはまた、1つのより多くの事を尋ね:
は今偉大なルックス!数秒後にどのようにフェードアウトできますか?
これを行うには、window.setTimeout
を使用して、一定時間後にクラスを削除するコードを実行します。
デモの例を更新しました。
Here is a good tutorial on CSS transitions on CSS-tricks。
表示プロパティが –
'transition'をアニメーション化することができない、次のようにこのために、あなたはあなたのコードを変更する必要がありますルールは 'display'プロパティでは使用できませんので、' opacity'や 'left'、' top'などの位置をオフセットするなどの代替案を探さなければなりません。 – UncaughtTypeError