Selamat Datang di Uttawarat Beach

Selamat Datang di Uttawarat Beach

Uttawarat Beach - Surga Tersembunyi di Maluku

Jelajahi keindahan alam Kepulauan Watubela, Kesui Pesisir, dan pesona Uttawarat Beach yang masih alami di Maluku.

Destinasi wisata bahari dengan pantai berpasir putih, air laut jernih, dan panorama bawah laut yang memukau. Temukan pengalaman liburan tak terlupakan di salah satu surga tersembunyi Indonesia Timur.

Membuat Image Slider Gallery Interaktif dengan JavaScript

Membuat Image Slider Gallery Interaktif dengan JavaScript

Dipublikasikan: Juli 2026
Slider

Image slider adalah komponen web yang banyak digunakan di website portofolio, toko online, dan galeri. Tutorial ini membuat slider dengan navigasi, auto-play, dan indikator.

Fitur

  • Navigasi prev/next
  • Indikator dot
  • Auto-play dengan interval
  • Transisi animasi halus

Kode Lengkap

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Image Slider Gallery</title>
  <style>
    * { margin:0; padding:0; box-sizing:border-box; }
    body { font-family:'Segoe UI',Arial,sans-serif; background:#f0f2f5; min-height:100vh; display:flex; justify-content:center; align-items:center; padding:20px; }
    .container { background:#fff; border-radius:20px; padding:25px; box-shadow:0 20px 60px rgba(0,0,0,0.1); width:100%; max-width:700px; }
    h1 { text-align:center; color:#2d3436; margin-bottom:20px; }
    .slider { position:relative; border-radius:14px; overflow:hidden; }
    .slides { display:flex; transition:transform 0.5s ease; }
    .slide { min-width:100%; }
    .slide img { width:100%; height:400px; object-fit:cover; display:block; }
    .slide .caption { padding:15px 20px; background:rgba(0,0,0,0.7); color:#fff; position:absolute; bottom:0; left:0; right:0; text-align:center; }
    .nav-btn { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.8); border:none; width:45px; height:45px; border-radius:50%; cursor:pointer; font-size:20px; z-index:10; }
    .nav-btn:hover { background:#fff; }
    .prev { left:15px; }
    .next { right:15px; }
    .dots { display:flex; justify-content:center; gap:10px; margin-top:18px; }
    .dot { width:12px; height:12px; border-radius:50%; background:#dfe6e9; cursor:pointer; transition:all 0.3s; }
    .dot.active { background:#6c5ce7; width:30px; border-radius:6px; }
    .controls { display:flex; justify-content:center; gap:12px; margin-top:15px; }
    .controls button { padding:8px 18px; border:none; border-radius:8px; cursor:pointer; font-size:13px; }
    .btn-play { background:#00b894; color:#fff; }
    .btn-play.paused { background:#fdcb6e; }
  </style>
</head>
<body>
  <div class="container">
    <h1>🖼️ Image Slider Gallery</h1>
    <div class="slider">
      <div class="slides" id="slides">
        <div class="slide"><img src="https://images.unsplash.com/photo-1506744038136-46273834b3fb?w=700" alt="Nature" /><div class="caption">Keindahan Alam Pegunungan</div></div>
        <div class="slide"><img src="https://images.unsplash.com/photo-1470071459604-7b8ec44ffd0e?w=700" alt="Forest" /><div class="caption">Hutan Tropis yang Asri</div></div>
        <div class="slide"><img src="https://images.unsplash.com/photo-1507525428034-b723cf961d3e?w=700" alt="Beach" /><div class="caption">Pantai dengan Pasir Putih</div></div>
        <div class="slide"><img src="https://images.unsplash.com/photo-1510784722466-f2aa9c6fff89?w=700" alt="Sunset" /><div class="caption">Matahari Terbenam Spektakuler</div></div>
      </div>
      <button class="nav-btn prev" onclick="moveSlide(-1)">‹</button>
      <button class="nav-btn next" onclick="moveSlide(1)">›</button>
    </div>
    <div class="dots" id="dots"></div>
    <div class="controls"><button class="btn-play" id="playBtn" onclick="togglePlay()">⏸ Pause</button></div>
  </div>
  <script>
    let current = 0, total = 4, autoPlay = true, interval;
    function renderDots() {
      const dots = document.getElementById('dots');
      dots.innerHTML = Array.from({length: total}, (_,i) => `<div class="dot ${i===current?'active':''}" onclick="goTo(${i})"></div>`).join('');
    }
    function updateSlider() {
      document.getElementById('slides').style.transform = `translateX(-${current * 100}%)`;
      renderDots();
    }
    function moveSlide(dir) { current = (current + dir + total) % total; updateSlider(); }
    function goTo(i) { current = i; updateSlider(); }
    function togglePlay() {
      autoPlay = !autoPlay;
      document.getElementById('playBtn').textContent = autoPlay ? '⏸ Pause' : '▶ Play';
      if (autoPlay) startAutoPlay();
      else clearInterval(interval);
    }
    function startAutoPlay() { clearInterval(interval); interval = setInterval(() => moveSlide(1), 3000); }
    renderDots(); startAutoPlay();
  </script>
</body>
</html>

Cara Jalankan

  1. Simpan sebagai slider.html
  2. Buka di browser
  3. Gunakan tombol navigasi atau biarkan auto-play

"Tampilkan galeri foto Anda dengan slider interaktif!"


Label: Tutorial, Web App, Image Slider, Gallery, JavaScript, HTML, CSS

Posting Komentar untuk "Membuat Image Slider Gallery Interaktif dengan JavaScript"