Tutorial Pemrograman

Cara Membuat Slider Text dengan HTML5, CSS3 dan JavaScript

Pada tampilan slider, umumnya hanya menampilkan gambar yang bergeser otomatis. Namun, kali ini kita akan membuat tampilan slider dengan tambahan teks di dalamnya. Yuk langsung saja buka komputer kamu, dan kita mulai membuat slider text dengan HTML5, CSS3, dan JavaScript:

1. Buka XAMPP Control Panel, serta aktifkan Apache dan MySql.

2. Buka text editor, seperti Notepad++, atau Dreamweaver dan ketiklah script code berikut.

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title>Membuat Slider Text</title>
	<link rel="stylesheet" href="style.css">
	<link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<div class="slider-container">
  <div class="slider-control left inactive"></div>
  <div class="slider-control right"></div>
  <ul class="slider-pagi"></ul>
  <div class="slider">
    <div class="slide slide-0 active">
      <div class="slide__bg"></div>
      <div class="slide__content">
        <svg class="slide__overlay" viewBox="0 0 720 405" preserveAspectRatio="xMaxYMax slice">
          <path class="slide__overlay-path" d="M0,0 150,0 500,405 0,405" />
        </svg>
        <div class="slide__text">
          <h2 class="slide__text-heading" style="font-family: 'Open Sans Condensed', sans-serif;">Definisi Informasi</h2>
          <p class="slide__text-desc" style="font-family: 'Open Sans Condensed', sans-serif;"> Informasi merupakan 
		  kumpulan dari data yang diolah menjadi bentuk yang lebih berrguna dan memiliki nilai yang lebih berarti bagi penerima.</p>
          <a class="slide__text-link" style="font-family: 'Open Sans Condensed', sans-serif;">Learn More</a>
        </div>
      </div>
    </div>
    <div class="slide slide-1 ">
      <div class="slide__bg"></div>
      <div class="slide__content">
        <svg class="slide__overlay" viewBox="0 0 720 405" preserveAspectRatio="xMaxYMax slice">
          <path class="slide__overlay-path" d="M0,0 150,0 500,405 0,405" />
        </svg>
        <div class="slide__text">
          <h2 class="slide__text-heading" style="font-family: 'Open Sans Condensed', sans-serif;">Sistem Informasi</h2>
          <p class="slide__text-desc" style="font-family: 'Open Sans Condensed', sans-serif;">Sistem informasi 
		  merupakan sistem dengan komponen-komponen yang bekerja untuk mengolah data menjadi infomasi.</p>
          <a class="slide__text-link" style="font-family: 'Open Sans Condensed', sans-serif;">Learn More</a>
        </div>
      </div>
    </div>
    <div class="slide slide-2">
      <div class="slide__bg"></div>
      <div class="slide__content">
        <svg class="slide__overlay" viewBox="0 0 720 405" preserveAspectRatio="xMaxYMax slice">
          <path class="slide__overlay-path" d="M0,0 150,0 500,405 0,405" />
        </svg>
        <div class="slide__text">
          <h2 class="slide__text-heading" style="font-family: 'Open Sans Condensed', sans-serif;">Tujuan SI</h2>
          <p class="slide__text-desc" style="font-family: 'Open Sans Condensed', sans-serif;">Tujuan SI adalah untuk menyajikan 
		  informasi guna pengambilan keputusan pada perencanaan, pemrakarsaan, pengorganisasian, pengendalian 
		  kegiatan operasi subsistem suatu perusahaan dan menyajikan sinergi organisasi pada proses(Murdick dan Ross, 1993).</p>
          <a class="slide__text-link" style="font-family: 'Open Sans Condensed', sans-serif;">Learn More</a>
        </div>
      </div>
    </div>
</div>
		<h1 style="color:#fff; text-align:center; font-size:60px">Slider Text</h1>
</body>
</html>

Simpan script code di atas, simpan di folder xampplite – htdocs – buat folder baru (disini saya buat folder baru dengan nama “SliderText”) – saya simpan dengan nama file “index.php”.

3. Untuk melihat hasil script code di atas, kamu bisa buka browser kamu ketiklah http://localhost/SliderText.

4. Tampilan pada gambar hanya menunjukan bangun ruang trapesium, nah untuk merapikan tampilan, membuat efek slider, dan animasi teks masuk, kita perlu menambahkan script CSS3 dan JavaScript. Namun, kita akan memperbaiki tampilan terlebih dahulu dengan menambahkan script CSS3. Buka kembali lembar kerja baru di Notepad++ dan ketikkan kode CSS berikut:

@font-face {
  src: url("https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300");
  font-family: 'Open Sans Condensed', sans-serif;
}
.slide__text-desc {
  font-family: 'Open Sans Condensed', sans-serif;
}

*, *:before, *:after {
  box-sizing: border-box;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  font-size: 62.5%;
  height: 100%;
  overflow: hidden;
}

body {
  background: #000;
}

svg {
  display: block;
  overflow: visible;
}

.slider-container {
  position: relative;
  height: 80%;
  margin:auto;
  user-select: none;
  cursor: all-scroll;
}

.slider-control {
  z-index: 2;
  position: absolute;
  top: 0;
  width: 12%;
  height: 100%;
  transition: opacity 0.3s;
  will-change: opacity;
  opacity: 0;
}
.slider-control.inactive:hover {
  cursor: auto;
}
.slider-control:not(.inactive):hover {
  opacity: 1;
  cursor: pointer;
}
.slider-control.left {
  left: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
}
.slider-control.right {
  right: 0;
  background: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.5) 100%);
}

.slider-pagi {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 2rem;
  transform: translateX(-50%);
  font-size: 0;
  list-style-type: none;
}
.slider-pagi__elem {
  position: relative;
  display: inline-block;
  vertical-align: top;
  width: 1rem;
  height: 1rem;
  margin: 0 0.5rem;
  border-radius: 50%;
  border: 2px solid #fff;
  cursor: pointer;
}
.slider-pagi__elem:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.2rem;
  height: 1.2rem;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.3s;
  transform: translate(-50%, -50%) scale(0);
}
.slider-pagi__elem.active:before, .slider-pagi__elem:hover:before {
  transform: translate(-50%, -50%) scale(1);
}

.slider {
  z-index: 1;
  position: relative;
  height: 100%;
}
.slider.animating {
  transition: transform 0.5s;
  will-change: transform;
}
.slider.animating .slide__bg {
  transition: transform 0.5s;
  will-change: transform;
}

.slide {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.slide.active .slide__overlay,
.slide.active .slide__text {
  opacity: 1;
  transform: translateX(0);
}
.slide__bg {
  position: absolute;
  top: 0;
  left: -50%;
  width: 100%;
  height: 100%;
  background-size: cover;
  will-change: transform;
}
.slide:nth-child(1) {
  left: 0;
}
.slide:nth-child(1) .slide__bg {
  left: 0;
  background-image: url("01.jpeg");
}
.slide:nth-child(1) .slide__overlay-path {
  fill: #e99c7e;
}
@media (max-width: 991px) {
  .slide:nth-child(1) .slide__text {
    background-color: rgba(233, 156, 126, 0.8);
  }
}
.slide:nth-child(2) {
  left: 100%;
}
.slide:nth-child(2) .slide__bg {
  left: -50%;
  background-image: url("02.jpeg");
}
.slide:nth-child(2) .slide__overlay-path {
  fill: #303030;
}
@media (max-width: 991px) {
  .slide:nth-child(2) .slide__text {
    background-color: rgba(48, 48, 48, 0.8);
  }
}
.slide:nth-child(3) {
  left: 200%;
}
.slide:nth-child(3) .slide__bg {
  left: -100%;
  background-image: url("03.jpeg");
}
.slide:nth-child(3) .slide__overlay-path {
  fill: #29424a;
}
@media (max-width: 991px) {
  .slide:nth-child(3) .slide__text {
    background-color: rgba(41, 66, 74, 0.8);
  }
}
.slide:nth-child(4) {
  left: 300%;
}
.slide:nth-child(4) .slide__bg {
  left: -150%;
  background-image: url("04.jpeg");
}
.slide:nth-child(4) .slide__overlay-path {
  fill: #cbc6c3;
}
@media (max-width: 991px) {
  .slide:nth-child(4) .slide__text {
    background-color: rgba(203, 198, 195, 0.8);
  }
}
.slide__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.slide__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 100%;
  min-height: 810px;
  transition: transform 0.5s 0.5s, opacity 0.2s 0.5s;
  will-change: transform, opacity;
  transform: translate3d(-20%, 0, 0);
  opacity: 0;
}
@media (max-width: 991px) {
  .slide__overlay {
    display: none;
  }
}
.slide__overlay path {
  opacity: 0.8;
}
.slide__text {
  position: absolute;
  width: 25%;
  bottom: 15%;
  left: 12%;
  color: #fff;
  transition: transform 0.5s 0.8s, opacity 0.5s 0.8s;
  will-change: transform, opacity;
  transform: translateY(-50%);
  opacity: 0;
}
@media (max-width: 991px) {
  .slide__text {
    left: 0;
    bottom: 0;
    width: 100%;
    height: 20rem;
    text-align: center;
    transform: translateY(50%);
    transition: transform 0.5s 0.5s, opacity 0.5s 0.5s;
    padding: 0 1rem;
  }
}
.slide__text-heading {
  font-family: "Polar", Helvetica, Arial, sans-serif;
  font-size: 5rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .slide__text-heading {
    line-height: 10rem;
    font-size: 3.5rem;
  }
}
.slide__text-desc {
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 1.8rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 991px) {
  .slide__text-desc {
    display: none;
  }
}
.slide__text-link {
  z-index: 5;
  display: inline-block;
  position: relative;
  padding: 0.5rem;
  cursor: pointer;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 2.3rem;
  perspective: 1000px;
}
@media (max-width: 991px) {
  .slide__text-link {
    margin: -2rem 0 8rem;
  }
}
.slide__text-link:before {
  z-index: -1;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  transform-origin: 50% 100%;
  transform: rotateX(-85deg);
  transition: transform 0.3s;
  will-change: transform;
}
.slide__text-link:hover:before {
  transform: rotateX(0);
}

Simpan script code di atas, simpan di folder xampplite  – htdocs – buat folder baru (disini saya buat folder baru dengan nama “SliderText”) – saya simpan dengan nama file “style.css”.

5. Reload http://localhost/SliderText.

6. Agar dapat efek slider dan animasi masuk teks dapat muncul, buka kembali index.php, dan ketikkan kode javascript berikut sebelum script </head> ya.

	<script>
		$(document).ready(function() {
		  
		  var $slider = $(".slider"),
			  $slideBGs = $(".slide__bg"),
			  diff = 0,
			  curSlide = 0,
			  numOfSlides = $(".slide").length-1,
			  animating = false,
			  animTime = 500,
			  autoSlideTimeout,
			  autoSlideDelay = 2600,
			  $pagination = $(".slider-pagi");
		  
		  function createBullets() {
			for (var i = 0; i < numOfSlides+1; i++) {
			  var $li = $("<li class='slider-pagi__elem'></li>");
			  $li.addClass("slider-pagi__elem-"+i).data("page", i);
			  if (!i) $li.addClass("active");
			  $pagination.append($li);
			}
		  };
		  
		  createBullets();
		  
		  function manageControls() {
			$(".slider-control").removeClass("inactive");
			if (!curSlide) $(".slider-control.left").addClass("inactive");
			if (curSlide === numOfSlides) $(".slider-control.right").addClass("inactive");
		  };
		  
		  function autoSlide() {
			autoSlideTimeout = setTimeout(function() {
			  curSlide++;
			  if (curSlide > numOfSlides) curSlide = 0;
			  changeSlides();
			}, autoSlideDelay);
		  };
		  
		  autoSlide();
		  
		  function changeSlides(instant) {
			if (!instant) {
			  animating = true;
			  manageControls();
			  $slider.addClass("animating");
			  $slider.css("top");
			  $(".slide").removeClass("active");
			  $(".slide-"+curSlide).addClass("active");
			  setTimeout(function() {
				$slider.removeClass("animating");
				animating = false;
			  }, animTime);
			}
			window.clearTimeout(autoSlideTimeout);
			$(".slider-pagi__elem").removeClass("active");
			$(".slider-pagi__elem-"+curSlide).addClass("active");
			$slider.css("transform", "translate3d("+ -curSlide*100 +"%,0,0)");
			$slideBGs.css("transform", "translate3d("+ curSlide*50 +"%,0,0)");
			diff = 0;
			autoSlide();
		  }

		  function navigateLeft() {
			if (animating) return;
			if (curSlide > 0) curSlide--;
			changeSlides();
		  }

		  function navigateRight() {
			if (animating) return;
			if (curSlide < numOfSlides) curSlide++;
			changeSlides();
		  }

		  $(document).on("mousedown touchstart", ".slider", function(e) {
			if (animating) return;
			window.clearTimeout(autoSlideTimeout);
			var startX = e.pageX || e.originalEvent.touches[0].pageX,
				winW = $(window).width();
			diff = 0;
			
			$(document).on("mousemove touchmove", function(e) {
			  var x = e.pageX || e.originalEvent.touches[0].pageX;
			  diff = (startX - x) / winW * 70;
			  if ((!curSlide && diff < 0) || (curSlide === numOfSlides && diff > 0)) diff /= 2;
			  $slider.css("transform", "translate3d("+ (-curSlide*100 - diff) +"%,0,0)");
			  $slideBGs.css("transform", "translate3d("+ (curSlide*50 + diff/2) +"%,0,0)");
			});
		  });
		  
		  $(document).on("mouseup touchend", function(e) {
			$(document).off("mousemove touchmove");
			if (animating) return;
			if (!diff) {
			  changeSlides(true);
			  return;
			}
			if (diff > -8 && diff < 8) {
			  changeSlides();
			  return;
			}
			if (diff <= -8) {
			  navigateLeft();
			}
			if (diff >= 8) {
			  navigateRight();
			}
		  });
		  
		  $(document).on("click", ".slider-control", function() {
			if ($(this).hasClass("left")) {
			  navigateLeft();
			} else {
			  navigateRight();
			}
		  });
		  
		  $(document).on("click", ".slider-pagi__elem", function() {
			curSlide = $(this).data("page");
			changeSlides();
		  });
		  
		});
	</script>

Jangan lupa tekan Ctrl+S ya.

7. Reload http://localhost/SliderText.

Tampilan lainnya dari slider.

Catatan:

1. Mungkin ada yang masih bingung kenapa harus disimpan di htdocs? Htdocs adalah salah satu folder bawaan dari XAMPP, yang tugasnya khusus untuk menyimpan berkas-berkas yang akan dijalankan, seperti berkas PHP, HTML, CSS, dan JavaScript.

2. Kemudian, mungkin ada yang menanyakan maksud dari http://localhost/SliderText. Localhost merupakan server lokal pada computer. Localhost dapat diaktifkan ketika kamu meng-klik start Apache di XAMPP Control Panel. SliderText menunjuk pada folder SliderText saya di xampplite – htdocs. Dan, index.php adalah nama file yang tersimpan script code di atas.

Demikian penjelasan dari tutorial tentang ‘Cara Membuat Slider Text dengan HTML5, CSS3, dan JavaScript’. Selamat mencoba.

Tutorial Lainnya dari Penulis:


Komentar

Leave a Reply

Your email address will not be published. Required fields are marked *

Inwepo adalah media platform yang membantu setiap orang untuk belajar dan berbagi tutorial, tips dan trik cara penyelesaian suatu masalah di kehidupan sehari-hari dalam bentuk teks, gambar. dan video.

Dengan bergabung bersama kami dan membuat 1 tutorial terbaik yang kamu miliki dapat membantu jutaan orang di Indonesia untuk mendapatkan solusinya. Ayo berbagi tutorial terbaikmu.

Ikuti Kami di Sosmed!

        

Berlangganan Tutorial Gratis Melalui Email!

Copyright © 2020 Inwepo - All Rights Reserved.

To Top