Может быть, вы можете попробовать это:
// setting up a function to wrap the removeClass() in a
// setTimeout() function
const removeShowClass = () => {
setTimeout(function() {
jQuery('#alert').removeClass('show')
}, 2000)
}
// simulating a "quick" process
jQuery('#quick').on('click', function(e) {
jQuery('#alert').addClass('show')
removeShowClass()
})
// simulating a "slow" process
jQuery('#slow').on('click', function(e) {
jQuery('#alert').addClass('show')
setTimeout(function() {
removeShowClass()
}, 2000)
})
.alert:not( .show) {
visibility: hidden;
}
.alert.show {
visibility: visible;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="alert" class="alert">ALERT</div>
<br />
<br />
<button id="quick">QUICK PROCESS ALERT</button>
<br />
<br />
<button id="slow">SLOW PROCESS ALERT</button>
Если вы просто наберете removeClass()
в виде простого setTimeout()
, то предупреждения обязательно появятся - они исчезнут после процесса закончено + заданная сумма в миллисекундах. Таким образом, вы можете убедиться, что alert
отображается минимально за время, установленное в setTimeout()
.