Initial commit: Key Ajans portfolio site

This commit is contained in:
kayasamat
2026-08-07 17:46:14 +03:00
commit 91bb52bce4
18 changed files with 1656 additions and 0 deletions
+95
View File
@@ -0,0 +1,95 @@
/* Tema anahtarı + slider'lar + flash otomatik kapanma */
(function () {
"use strict";
// ---- Dark / light tema ----
var root = document.documentElement;
var stored = null;
try { stored = localStorage.getItem("key-theme"); } catch (e) {}
if (stored === "dark" || stored === "light") {
root.setAttribute("data-theme", stored);
} else {
root.setAttribute("data-theme", "light");
}
var toggle = document.getElementById("themeToggle");
if (toggle) {
toggle.addEventListener("click", function () {
var next = root.getAttribute("data-theme") === "dark" ? "light" : "dark";
root.setAttribute("data-theme", next);
try { localStorage.setItem("key-theme", next); } catch (e) {}
});
}
// ---- Slider'lar ----
document.querySelectorAll(".slider").forEach(function (slider) {
var images = Array.prototype.slice.call(slider.querySelectorAll(".slides img"));
if (images.length === 0) return;
var current = 0;
var interval = parseInt(slider.getAttribute("data-interval") || "4000", 10);
var timer = null;
var dotsBox = slider.querySelector(".dots");
images.forEach(function (_, i) {
var d = document.createElement("span");
d.setAttribute("role", "button");
d.setAttribute("aria-label", "Görsel " + (i + 1));
d.addEventListener("click", function (ev) {
ev.stopPropagation();
go(i);
restart();
});
dotsBox.appendChild(d);
});
var dots = Array.prototype.slice.call(dotsBox.children);
function show() {
images.forEach(function (img, i) {
img.classList.toggle("active", i === current);
});
dots.forEach(function (d, i) {
d.classList.toggle("active", i === current);
});
}
function go(i) {
current = (i + images.length) % images.length;
show();
}
function next() { go(current + 1); }
function prev() { go(current - 1); }
function restart() {
if (timer) clearInterval(timer);
timer = setInterval(next, interval);
}
slider.querySelector(".next").addEventListener("click", function (ev) {
ev.stopPropagation();
next();
restart();
});
slider.querySelector(".prev").addEventListener("click", function (ev) {
ev.stopPropagation();
prev();
restart();
});
slider.addEventListener("mouseenter", function () {
if (timer) clearInterval(timer);
});
slider.addEventListener("mouseleave", restart);
show();
restart();
});
// ---- Flash mesajları ----
setTimeout(function () {
document.querySelectorAll(".flash").forEach(function (el) {
el.style.transition = "opacity .8s ease";
el.style.opacity = "0";
setTimeout(function () { el.remove(); }, 800);
});
}, 5000);
})();