Files
Task-Integra/task_4/landing4/assets/modal.js
2025-10-31 16:11:41 +03:00

279 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$(document).mouseleave(function (e) {
if (e.clientY < 10) {
$(".exitblock").fadeIn("fast");
}
});
$(document).click(
function (e) {
if (($(".exitblock").is(':visible')) && (!$(e.target).closest(".exitblock .modaltext").length)) {
$(".exitblock").remove();
}
});
function myFunction(e) {
$(".exitblock").remove();
}
var a = {
subtract: function (num) {
var qty = $('.pac-minus').html() - 0;
var qtynew = qty - num;
qtynew = (qtynew < 5 ? 5 : qtynew);
$('.pac-minus').html(qtynew);
}
};
$(document).ready(function () {
setTimeout(function () {
a.subtract(2);
setInterval(function () {
a.subtract(Math.floor(Math.random() * (4 - 2)) + 2);
}, (Math.floor(Math.random() * (25 - 20)) + 20) * 1000);
}, 2000);
});
$(document).ready(function () {
$("[data-toggle=scroll]").on('click', function () {
var elementClick = $(this).attr("href")
var destination = $(elementClick).offset().top;
jQuery("html:not(:animated),body:not(:animated)").animate({
scrollTop: destination
}, 2000);
return false;
});
});
// data-toggle="scroll" href="#form"
// <script language="javascript" type="text/javascript">var d = new Date();document.write(d.getFullYear()-2);</script> Дата год
// Если нужен вывод даты и время + минут, тогда к СПАНА с датой добавляем класс "time" <span class = "date-1 time"> </ span>.
// Работает как в порядке убывания, так и в порядке возрастания.
document.addEventListener("DOMContentLoaded", Datee);
function Datee() {
var msInDay = 86400000,
counterLength = 33,
months, countryName = 'iq', // Встановлюємо мову для місяців.
isAbbreviated = false, // Якщо потрібно скорочений варіант місяців з трьох букв, наприклад "янв", "июн" і т.д, тоді ставим TRUE.
localDate = new Date();
switch (countryName) {
case 'it': // Italy
months = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];
break;
case 'es': // Spain
months = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
break;
case 'fr': // France
months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
break;
case 'pt': // Portugal
months = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
break;
case 'de': // Germany
months = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
break;
case 'bg': // Bulgaria
months = ['Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни', 'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'];
break;
case 'pl': // Poland
months = ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'];
break;
case 'ro': // Romania
months = ['Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Iunie', 'Iulie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie'];
break;
case 'hu': // Hungary (Румунія)
months = ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'];
break;
case 'gr': // Greece
case 'cy': // Cyprus (Кіпр)
months = ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'];
break;
case 'iq': // Russia
months = ['يناير' , 'فبراير' , 'مارس' , 'أبريل' , 'مايو' , 'يونيو' , 'يوليو' , 'أغسطس' , 'سبتمبر' , 'أكتوبر' , 'نوفمبر' , 'ديسمبر'];
break;
}
if (isAbbreviated) {
for (var i = 0; i < months.length; i++) {
months[i] = months[i].slice(0, 3).toLowerCase(); // Убираем ".toLowerCase ()", если первая буква должна быть большой.
}
}
for (var counter = 0; counter < counterLength; counter++) {
var dateClass = "date-" + counter,
nodeList = document.getElementsByClassName(dateClass),
date = new Date(localDate.getTime() - counter * msInDay),
timeCounter = 0;
timeArray = time(nodeList /*, true*/ ); // Раскомментировать, если необходима сортировка в порядке убывания.
timeArray = timeFormat(timeArray);
for (var i = 0; i < nodeList.length; i++) {
var data = nodeList[i].dataset;
if (data.format) {
nodeList[i].innerHTML = format(date, data.format);
// format: Особая форма для отдельной даты. Добавляем как data-format = "фомарт". Форматы смотреть в switchьи ниже. dd - цифры, day - прописью.
// <span class = "date-1" data-format="dd month yyyy"> </ span> - мотает на 1 день назад и выводит этот span в виде "24 июля 1995".
} else {
nodeList[i].innerHTML = format(date /*, "dd month yyyy"*/ ); // Default: dd.mm.yyyy ADD FORMAT HEREEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
}
if (nodeList[i].className.match(/\btime\b/)) {
nodeList[i].innerHTML += " " + timeArray[timeCounter];
timeCounter++;
}
}
}
function time(nodeList, reverse) {
var timeArray = [];
for (var i = 0; i < nodeList.length; i++) {
if (nodeList[i].className.match(/\btime\b/)) {
timeArray.push(timeRandom());
}
}
if (reverse) timeArray.sort(function (a, b) {
return b - a;
});
else timeArray.sort(function (a, b) {
return a - b;
});
return timeArray;
}
function timeRandom() {
return Math.round(0 + Math.random() * 1440);
}
function timeFormat(timearray) {
var array = [];
for (var i = 0; i < timearray.length; i++) {
var htemp = Math.floor(timearray[i] / 60),
mtemp = timearray[i] % 60,
hours = htemp < 10 ? "0" + htemp : htemp,
minutes = mtemp < 10 ? "0" + mtemp : mtemp;
array.push(hours + ":" + minutes);
}
return array;
}
function format(date, formatstring) {
var innerDate = "",
day = date.getDate(),
year = date.getFullYear(),
month = date.getMonth() + 1,
fo = formatstring || true;
switch (fo) {
case "mm.dd.yyyy":
innerDate += (month < 10) ? ("0" + month) : month;
innerDate += ".";
innerDate += (day < 10) ? ("0" + day) : day;
innerDate += "." + year;
return innerDate;
case "dd month yyyy":
innerDate += (day < 10) ? ("0" + day) : day;
innerDate += " ";
innerDate += months[month - 1];
innerDate += " " + year;
return innerDate;
case "yyyy":
innerDate += " " + year;
return innerDate;
case "dd month":
innerDate += (day < 10) ? ("0" + day) : day;
innerDate += " ";
innerDate += months[month - 1];
return innerDate;
case "day dd, month yyyy":
var days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
innerDate += days[new Date(year, month - 1, day).getDay()];
innerDate += " ";
innerDate += (day < 10) ? ("0" + day) : day;
innerDate += " ";
innerDate += months[month - 1];
innerDate += " " + year;
return innerDate;
case "dd/mm/yyyy":
innerDate += (day < 10) ? ("0" + day) : day;
innerDate += "/";
innerDate += (month < 10) ? ("0" + month) : month;
innerDate += "/" + year;
return innerDate;
case "dd-mm-yyyy":
innerDate += (day < 10) ? ("0" + day) : day;
innerDate += "-";
innerDate += (month < 10) ? ("0" + month) : month;
innerDate += "-" + year;
return innerDate;
default:
innerDate += (day < 10) ? ("0" + day) : day;
innerDate += ".";
innerDate += (month < 10) ? ("0" + month) : month;
innerDate += "." + year;
return innerDate;
}
}
}
var resultWrapper = document.querySelector('.spin-result-wrapper');
var wheel = document.querySelector('.wheel-img');
function spin() {
if (!wheel.classList.contains('rotated')) {
wheel.classList.add('super-rotation');
setTimeout(function () {
resultWrapper.style.display = "block";
}, 8000);
setTimeout(function () {
$('.spin-wrapper').slideUp();
$('.order_block').slideDown();
start_timer();
}, 10000);
wheel.classList.add('rotated');
}
}
var closePopup = document.querySelector('.close-popup');
$('.close-popup, .pop-up-button').click(function (e) {
e.preventDefault();
$('.spin-result-wrapper').fadeOut();
var top = $('#form').offset().top;
$('body,html').animate({
scrollTop: top
}, 800);
});
var time = 600;
var intr;
function start_timer() {
intr = setInterval(tick, 1000);
}
function tick() {
time = time - 1;
var mins = Math.floor(time / 60);
var secs = time - mins * 60;
if (mins == 0 && secs == 0) {
clearInterval(intr);
}
secs = secs >= 10 ? secs : "0" + secs;
$("#min").html("0" + mins);
$("#sec").html(secs);
}