22 - python & all web labs
This commit is contained in:
117
labWeb/kt_3/script.js
Normal file
117
labWeb/kt_3/script.js
Normal file
@@ -0,0 +1,117 @@
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const burger = document.getElementById("burger");
|
||||
const nav = document.getElementById("siteNav");
|
||||
if (burger && nav) {
|
||||
burger.addEventListener("click", function () {
|
||||
nav.classList.toggle("open");
|
||||
});
|
||||
}
|
||||
|
||||
const dateBox = document.getElementById("todayDate");
|
||||
if (dateBox) {
|
||||
const now = new Date();
|
||||
dateBox.textContent = now.toLocaleDateString("ru-RU", {
|
||||
year: "numeric",
|
||||
month: "long",
|
||||
day: "numeric",
|
||||
weekday: "long"
|
||||
});
|
||||
}
|
||||
|
||||
const slides = Array.from(document.querySelectorAll(".slide"));
|
||||
if (slides.length > 0) {
|
||||
let slideIndex = 0;
|
||||
setInterval(function () {
|
||||
slides[slideIndex].classList.remove("active");
|
||||
slideIndex = (slideIndex + 1) % slides.length;
|
||||
slides[slideIndex].classList.add("active");
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
const newsModal = document.getElementById("newsModal");
|
||||
const modalTitle = document.getElementById("modalTitle");
|
||||
const modalText = document.getElementById("modalText");
|
||||
const closeModalBtn = document.getElementById("closeModal");
|
||||
const newsButtons = document.querySelectorAll(".open-news");
|
||||
|
||||
if (newsModal && modalTitle && modalText && closeModalBtn && newsButtons.length) {
|
||||
newsButtons.forEach(function (btn) {
|
||||
btn.addEventListener("click", function () {
|
||||
modalTitle.textContent = btn.dataset.title || "Новость";
|
||||
modalText.textContent = btn.dataset.full || "";
|
||||
newsModal.classList.add("open");
|
||||
});
|
||||
});
|
||||
|
||||
closeModalBtn.addEventListener("click", function () {
|
||||
newsModal.classList.remove("open");
|
||||
});
|
||||
|
||||
newsModal.addEventListener("click", function (event) {
|
||||
if (event.target === newsModal) {
|
||||
newsModal.classList.remove("open");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const geoBtn = document.getElementById("geoBtn");
|
||||
const geoResult = document.getElementById("geoResult");
|
||||
if (geoBtn && geoResult) {
|
||||
geoBtn.addEventListener("click", function () {
|
||||
if (!navigator.geolocation) {
|
||||
geoResult.textContent = "Геолокация не поддерживается.";
|
||||
return;
|
||||
}
|
||||
geoResult.textContent = "Определяем координаты...";
|
||||
navigator.geolocation.getCurrentPosition(
|
||||
function (position) {
|
||||
const lat = position.coords.latitude.toFixed(5);
|
||||
const lon = position.coords.longitude.toFixed(5);
|
||||
geoResult.textContent = "Ваши координаты: " + lat + ", " + lon;
|
||||
},
|
||||
function () {
|
||||
geoResult.textContent = "Не удалось получить геолокацию.";
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
const bookingForm = document.getElementById("bookingForm");
|
||||
const formResult = document.getElementById("formResult");
|
||||
if (bookingForm && formResult) {
|
||||
const saved = localStorage.getItem("bookingData");
|
||||
if (saved) {
|
||||
const parsed = JSON.parse(saved);
|
||||
for (const key in parsed) {
|
||||
const el = bookingForm.elements[key];
|
||||
if (el) {
|
||||
el.value = parsed[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bookingForm.addEventListener("submit", function (event) {
|
||||
event.preventDefault();
|
||||
const formData = new FormData(bookingForm);
|
||||
const dataObj = {};
|
||||
formData.forEach(function (value, key) {
|
||||
dataObj[key] = value;
|
||||
});
|
||||
|
||||
localStorage.setItem("bookingData", JSON.stringify(dataObj));
|
||||
formResult.innerHTML =
|
||||
"<h3>Результат обработки формы</h3>" +
|
||||
"<p><b>Имя:</b> " + (dataObj.firstName || "") + "</p>" +
|
||||
"<p><b>Фамилия:</b> " + (dataObj.lastName || "") + "</p>" +
|
||||
"<p><b>Email:</b> " + (dataObj.email || "") + "</p>" +
|
||||
"<p><b>Телефон:</b> " + (dataObj.phone || "") + "</p>" +
|
||||
"<p><b>Город вылета:</b> " + (dataObj.city || "") + "</p>" +
|
||||
"<p><b>Направление:</b> " + (dataObj.direction || "") + "</p>" +
|
||||
"<p><b>Дата старта:</b> " + (dataObj.startDate || "") + "</p>" +
|
||||
"<p><b>Дата возврата:</b> " + (dataObj.endDate || "") + "</p>" +
|
||||
"<p><b>Количество человек:</b> " + (dataObj.people || "") + "</p>" +
|
||||
"<p><b>Бюджет:</b> " + (dataObj.budget || "") + " руб.</p>" +
|
||||
"<p><b>Комментарий:</b> " + (dataObj.comment || "") + "</p>";
|
||||
});
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user