#javascript
#javascript
Вопрос:
Я настраиваю всплывающее окно, которое я хочу показывать на веб-сайте каждую пятницу, и скрываю его через 24 часа до следующей пятницы. Есть идеи?
Вот мой код и скрипка:
var elem = document.querySelector('.elem');
var current = new Date();
var expiry = new Date("April 26, 2019 08:00:00");
if ( current.getTime() >= expiry.getTime() )
{
elem.style.display = "none";
}
<div class="elem">
<h1>Lorem ipsum</h1>
</div>
Комментарии:
1. Не будет работать, потому что вы должны регулярно проверять свое сравнение. Здесь вы проверяете его только при загрузке страницы.
2. 24 часа с какого момента? Вы имеете в виду, что хотите показывать его в течение 24 часов после того, как посетитель впервые увидит его, или только в пятницу? Вы хотите скрыть его по умолчанию (с помощью CSS) и показывать только в том случае, если текущий день — пятница.
3. То есть вы имеете в виду, что когда пользователь открывает ваше приложение в пятницу, оно должно открывать всплывающее окно независимо от времени. (Ничего в четверг и субботу)?
Ответ №1:
Вы можете проверить день недели с помощью функции getDay()
0 для воскресенья, 1 для понедельника … 5 для пятницы
var elem = document.querySelector('.elem');
var current = new Date();
var currentDay = current.getDay()
if (currentDay != 5 ) {
elem.style.display = "none";
}
<div class="elem">
<h1>Lorem ipsum</h1>
</div>
Ответ №2:
Вам нужно будет проверять время от времени, используя setInterval
:
setInterval(checkTime, 60000);
function checkTime() {
var elem = document.querySelector('.elem');
var current = new Date();
if ( current.getDay() != 5 amp;amp; elem.style.display == "block" )
{
elem.style.display = "none";
}
else if ( current.getDay() == 5 amp;amp; elem.style.display == "none" )
{
elem.style.display = "block";
}
}
Второй параметр — это миллисекунды между каждой проверкой. Я использовал 60000
, а это одна минута. Вот несколько распространенных случаев:
Minutes | Milliseconds
--------|-------------
1:00 | 60000
2:00 | 120000
5:00 | 300000
10:00 | 600000