22 - python & all web labs

This commit is contained in:
2026-05-02 20:27:02 +05:00
parent ef77f101fa
commit 19af922baf
5781 changed files with 770492 additions and 96 deletions

117
labWeb/kt_3/script.js Normal file
View 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>";
});
}
});