JavaScript ile Sıfırdan Slider Yapımı

JavaScript ile Sıfırdan Slider Yapımı

Web geliştirmede en çok kullanılan bileşenlerden biri olan slider'ları (resim kaydırıcı) JavaScript ile sıfırdan nasıl yapabileceğinizi detaylı kod açıklamalarıyla öğrenin. Bu rehberde, temel HTML/CSS yapısını oluşturup JavaScript ile interaktif hale getireceğiz.


1. Proje Yapısını Oluşturma


Slider'ımız için önce temel HTML ve CSS yapısını hazırlayalım.


HTML Kodu ve Açıklamaları


<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript Slider Yapımı</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="slider-container">
<div class="slider">
<!-- Her bir slayt -->
<div class="slide active"> <!-- "active" class'ı görünür slaytı belirler -->
<img src="slide1.jpg" alt="Ürün Galerisi 1"> <!-- SEO için alt etiketi ekledik -->
</div>
<div class="slide">
<img src="slide2.jpg" alt="Ürün Galerisi 2">
</div>
</div>
<!-- Önceki/Sonraki butonları -->
<button class="prev-btn">❮</button> <!-- HTML entity kullanımı -->
<button class="next-btn">❯</button>
</div>
<script src="script.js"></script>
</body>
</html>

Neden Önemli?



  • alt etiketleri: Görselleriniz SEO dostu olur.

  • Semantik yapı: Arama motorları slider'ın yapısını anlar.


2. CSS ile Stil Verme


Slider'ımıza temel stilleri ekleyelim.


CSS Kodu ve Açıklamaları


.slider-container {
position: relative;
max-width: 800px; /* Slider genişliği */
margin: 0 auto; /* Ortalama */
overflow: hidden; /* Taşan içeriği gizle */
}

.slider {
display: flex;
transition: transform 0.5s ease; /* Yumuşak geçiş efekti */
}

.slide {
min-width: 100%; /* Her slayt container genişliğinde */
}

.slide img {
width: 100%;
display: block;
}

/* Önceki/Sonraki buton stilleri */
.prev-btn, .next-btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(0,0,0,0.5);
color: white;
border: none;
padding: 10px;
cursor: pointer;
z-index: 10; /* Resimlerin üstünde görünmesi için */
}

.prev-btn { left: 10px; }
.next-btn { right: 10px; }

Performans İpuçları:



  • transition özelliği animasyonu yumuşatır.

  • overflow: hidden kaydırma dışındaki slaytları gizler.


3. JavaScript ile İşlevsellik Ekleme


Slider'ı dinamik hale getirelim.


JavaScript Kodu ve Açıklamaları


document.addEventListener('DOMContentLoaded', () => {
const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slide');
const prevBtn = document.querySelector('.prev-btn');
const nextBtn = document.querySelector('.next-btn');

let currentIndex = 0;
const slideCount = slides.length;

// Slaytları güncelleme fonksiyonu
function updateSlider() {
slider.style.transform = `translateX(-${currentIndex * 100}%)`;
slides.forEach(slide => slide.classList.remove('active'));
slides[currentIndex].classList.add('active');
}

// Sonraki slayta git
nextBtn.addEventListener('click', () => {
currentIndex = (currentIndex + 1) % slideCount;
updateSlider();
});

// Önceki slayta git
prevBtn.addEventListener('click', () => {
currentIndex = (currentIndex - 1 + slideCount) % slideCount;
updateSlider();
});

// Otomatik kaydırma (opsiyonel)
setInterval(() => {
currentIndex = (currentIndex + 1) % slideCount;
updateSlider();
}, 3000);
});

Kod Analizi:



  1. translateX: Slaytları yatayda kaydırır.

  2. % operatörü: Slaytların başa dönmesini sağlar.

  3. classList: Aktif slaytı görünür yapar.


4. SEO ve Performans Optimizasyonları


Resim Optimizasyonu:



  • WebP formatı kullanın.

  • loading="lazy" ekleyerek geç yüklenmesini sağlayın.


Erişilebilirlik:



  • Butonlara aria-label ekleyin (<button aria-label="Önceki slayt">).




Sonuç: Slider'ınız Hazır!


Bu rehberde:
✅ Temel HTML/CSS yapısını öğrendiniz.
✅ JavaScript ile dinamik slider yaptınız.
✅ SEO ve performans ipuçlarını uyguladınız.

Banner

Arama Yap

Hakkımızda

CR Medya, tek bir amaçla kurulmuş yaratıcı bir ajansdır: Markanızı tanımlamanıza yardımcı olmak. Güzel ve kullanıcı dostu bir tasarımı kaliteli programlamayla birleştirerek kusursuz bir hizmet sunuyoruz.

Devamını Oku

Banner

Banner

Neler yapıyoruz?