Header Ads

Hướng dẫn tạo trình chiếu ảnh

Trình chiếu ảnh hoặc Slideshow được sử dụng nhiều trong phát triển website cho nhà hàng, khách sạn, sản phẩm bán hàng, .... Bài viết này sẽ hướng dẫn bạn tạo một trình chiếu với HTML, CSS và JavaScript.



Trình chiếu ảnh có dạng:


Thêm mã HTML


Thêm HTML

<div class="slideshow-container">
  <div class="mySlides fade">
    <div class="numbertext">1 / 3</div>
    <img src="http://i.imgur.com/MyZfu1J.jpg" style="width:100%">
    <div class="text">Chú thích cho ảnh 1</div>
  </div>

  <div class="mySlides fade">
    <div class="numbertext">2 / 3</div>
    <img src="http://i.imgur.com/zv52vYA.jpg" style="width:100%">
    <div class="text">Chú thích cho ảnh 2</div>
  </div>

  <div class="mySlides fade">
    <div class="numbertext">3 / 3</div>
    <img src="http://i.imgur.com/0X2P272.jpg" style="width:100%">
    <div class="text">Chú thích cho ảnh 3</div>
  </div>

  <a class="prev" onclick="plusSlides(-1)">❮</a>
  <a class="next" onclick="plusSlides(1)">❯</a>
</div>
<br>

<div style="text-align:center">
  <span class="dot" onclick="currentSlide(1)"></span> 
  <span class="dot" onclick="currentSlide(2)"></span> 
  <span class="dot" onclick="currentSlide(3)"></span> 
</div>

Xem kết quả »

Thêm CSS

Thêm CSS cho nút, văn bản chú thích và dấu chấm:

Thêm CSS

/* Khung chứa trình chiếu ảnh */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}

/* Nút Next và Prev */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  margin-top: -22px;
  padding: 16px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
}

/* Vị trí nút "Next" nằm bên phải*/
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}


.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

/* Văn bản chú thích */
.text {
  color: #f2f2f2;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;
}

/* Văn bản đánh số (1/3) vv... */
.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}


.dot {
  cursor:pointer;
  height: 13px;
  width: 13px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active, .dot:hover {
  background-color: #717171;
}

/* Fading animation */
.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;
}

@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

Xem kết quả »

Thêm JavaScript

Thêm JavaScript

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {slideIndex = 1} 
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none"; 
  }
  for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active", "");
  }
  slides[slideIndex-1].style.display = "block"; 
  dots[slideIndex-1].className += " active";
}
Xem kết quả »

Trình chiếu ảnh tự động

Để trình chiếu ảnh tự động, bạn sử dụng mã sau:

Thêm JavaScript

var slideIndex = 0;
showSlides();

function showSlides() {
    var i;
    var slides = document.getElementsByClassName("mySlides");
    var dots = document.getElementsByClassName("dot");
    for (i = 0; i < slides.length; i++) {
       slides[i].style.display = "none";
    }
    slideIndex++;
    if (slideIndex> slides.length) {slideIndex = 1}
    for (i = 0; i < dots.length; i++) {
        dots[i].className = dots[i].className.replace(" active", "");
    }
    slides[slideIndex-1].style.display = "block";
    dots[slideIndex-1].className += " active";
    setTimeout(showSlides, 2000); // Chuyển ảnh sau 2 giây
}

Xem kết quả »

Chúc các bạn thành công!

Không có nhận xét nào

Được tạo bởi Blogger.