溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在css中實現幻燈片效果

發布時間:2020-07-10 16:41:00 來源:億速云 閱讀:231 作者:Leah 欄目:web開發

今天就跟大家聊聊有關如何在css中實現幻燈片效果,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

下面我們就通過代碼來一步步實現幻燈片切換(淡入淡出)的效果:

1、建立html文件,編寫demo

首先我們要在頁面上設置圖像列表,包含在div盒子中。類似于以下內容:

<div id="stage">
	<a href="img/1.jpg"><img src="img/1.jpg" width="640" height="400"></a>
	<a href="img/2.jpg"><img src="img/2.jpg" width="640" height="400"></a>
	<a href="img/3.jpg"><img src="img/3.jpg" width="640" height="400"></a>
	<a href="img/4.jpg"><img src="img/4.jpg" width="640" height="400"></a>
	<a href="img/5.jpg"><img src="img/5.jpg" width="640" height="400"></a>
	<a href="img/6.jpg"><img src="img/6.jpg" width="640" height="400"></a>
	<a href="img/7.jpg"><img src="img/7.jpg" width="640" height="400"></a>
	<a href="img/8.jpg"><img src="img/8.jpg" width="640" height="400"></a>
</div>

在此示例中,所有圖像都有鏈接,但這不是必需的。如果你刪除鏈接,你只需要改變一些CSS和JavaScript來引用'img'而不是'a'。

2、使用CSS來疊加圖像

以下是我們用于以下演示的CSS代碼:

#stage {
    margin: 1em auto;
    width: 382px;
    height: 292px;
  }

  #stage a {
    position: absolute;
  }
  #stage a img {
    padding: 10px;
    border: 1px solid #ccc;
    background: #fff;
  }

  #stage a:nth-of-type(1) {
    animation-name: fader;
    animation-delay: 4s;
    animation-duration: 1s;
    z-index: 20;
  }
  #stage a:nth-of-type(2) {
    z-index: 10;
  }
  #stage a:nth-of-type(n+3) {
    display: none;
  }

  @keyframes fader {
    from { opacity: 1.0; }
    to   { opacity: 0.0; }
  }

通過將鏈接設置為position:absolute,我們將所有圖像從文檔流中取出并將它們堆疊在一起。然后,我們需要為#stage指定寬度和高度, 以便為幻燈片顯示在頁面上保留空間。這等于圖像尺寸加上填充(每邊10px)和邊框(每邊1px)。

然后,我們使用一些nth-of-type()選擇器將第一個圖像放在堆棧頂部,第二個圖像放在堆疊的后面,其余圖像隱藏在顯示器之外。

最后,我們將動畫關鍵幀分配給頂部圖像,告訴它在設置opacity:0,淡出之前等待4秒?,F在所缺少的只是一點JavaScript來將面對的圖像移動到堆棧的底部,以便下一個圖像可以依次顯示和淡出。

3、使用JavaScript來觸發效果

這里需要的只是為keyframe 動畫結束時觸發的圖像分配事件處理程序。它需要最重要的照片,并把它移到后面:

window.addEventListener("DOMContentLoaded", function(e) {
    var stage = document.getElementById("stage");
    var fadeComplete = function(e) { stage.appendChild(arr[0]); };
    var arr = stage.getElementsByTagName("a");
    for(var i=0; i < arr.length; i++) {
      arr[i].addEventListener("animationend", fadeComplete, false);
    }

  }, false);

最上面的新圖像現在假設為 nth-of-type(1)屬性,包括關鍵幀動畫--fader,依此類推其他圖像。

就是這樣!沒有臃腫的代碼,沒有插件,沒有庫,只有幾行vanilla JavaScript可以在所有現代瀏覽器中使用。

4、效果圖:

運行以上代碼就可以獲得一個簡單的淡入淡出幻燈片:

如何在css中實現幻燈片效果

看完上述內容,你們對如何在css中實現幻燈片效果有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女