jqueryのイベント操作に関する質問です。
jqueryで表示させたモーダルを、「表示してから一定時間後」と「ブラウザ側でクリックした時」どちらかをイベントにして非表示にしたいのですが、方法が分からずに悩んでいます。
実装したい挙動としては
「自動で表示したモーダルを「表示から5秒後に自動で消える、5秒経つ前であってもブラウザ側でクリックしたら、モーダルを非表示にする」
というものです。
現時点のモーダルを表示させるコードは以下の通りです。
//フラグ時に自動でモーダル表示 var modalFlg = true; var eventModal = $('.js-modal-auto'); var modalCover = $('.js-modal-cover'); if(modalFlg){ eventModal.add(modalCover).show(); eventModal.add(modalCover).delay(5000).fadeOut(1000); };
クリック時にモーダルを非表示にするなら
eventModal.add(modalCover).on('click', function() { eventModal.add(modalCover).fadeOut(1000); });
イベントハンドラについてはspaceで区切ることで複数のイベントを仕込めるということはわかりました。
https://qiita.com/shizuma/items/d561f37f864c3ebb5096
しかし、「クリック」はイベントですが、時間経過についてはdelayやsetIntervalといったエフェクト系メソッドしかないように思います(私が不勉強なだけかもしれませんが)。
必須の機能ではないのですが、2つの条件を両立してモーダルの非表示させる方法をご存知であればご教示お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/15 00:04
2019/10/15 00:09
2019/10/16 07:43