iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 29
2
自我挑戰組

蚵蚵攻城記系列 第 29

[Day29] 邊做邊學 slide show (2/2)

  • 分享至 

  • xImage
  •  

昨天把slide show加上樣式了

<div class="slideshow-container">
	<div class="mySlides">
		<img src="https://dummyimage.com/600x400/000/ffffff&text=Slide+1">
		<div class="text">First picture</div>
	</div>
	<div class="mySlides">
		<img src="https://dummyimage.com/600x400/333/ffffff&text=Slide+2">
		<div class="text">Second picture</div>
	</div>
	<div class="mySlides">
		<img src="https://dummyimage.com/600x400/999/ffffff&text=Slide+3">
		<div class="text">Third picture</div>
	</div> <!-- 加上三張要slideshow的圖片 -->
	<a class="prev">❮</a>
	<a class="next">❯</a> <!-- "<"、">"兩種符號,可以點擊下一張和上一張 -->
</div>
<br>
<div class="dotBar">
	<span class="dot"></span> 
	<span class="dot"></span> 
	<span class="dot"></span> 
</div> <!-- 加上可以點擊的小點,點擊可以換圖片的那種 -->
.slideshow-container {
	 max-width: 600px;
	 position: relative;  
	 margin: auto;
}

/* 設定slide show的圖片先不顯示 */
.mySlides {
	display: none;
	/* 將圖片預設為不要顯示 */
}

/* 設定兩個在圖片左右兩邊的箭號 */
.prev, .next {
	cursor: pointer;
	/* 改變滑鼠游標的造型,變成手指 */
	position: absolute;
	/* 相對於它的父元素(slideshow-container)進行定位 */
	top: 50%;
	width: auto;
	margin-top: -22px;
	padding: 18px;
	color: white;
	font-weight: bold;
	font-size: 18px;
}

/* 將下一張的按鈕放置到slide的最右方 */
.next {
  right: 0;
}

/* 下方 picture的 text說明 */
.text {
  color: #fff;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;
}

/* slide show下方的 dot,點擊可以切換圖片 */
.dotBar {
  text-align: center;
}

.dot {
  cursor:pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  display: inline-block;
}

/* active以及hover的 dot會改變顏色 */
.active, .dot:hover {
  background-color: #717171;
}

接下來得寫JavaScript來控制...

var slideIndex = 1;
showSlides(slideIndex);

// 點擊"<" ">"時,可以改變slide index
function plusSlides(n) {
  showSlides(slideIndex += n);
}

// 最下方的dot,點擊切換slide
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} 
  //當slideIndex大於slide的長度時,在這裡就是3,自動跳回1
  if (n < 1) {slideIndex = slides.length}
  //當slideIndex小於1,也就是已經第一張了,還一直點上一張,自動跳到最後一張。
  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";
}

最後的loop和最後兩行寫了些甚麼...
之後再來研究看看...
試著做的slide
google之後,發現現在大多是用plugin來做,
以後有機會就來研究看看。


上一篇
[Day28] 邊做邊學 slide show (1/2)
下一篇
[Day 30] 總結
系列文
蚵蚵攻城記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言