今天就跟大家聊聊有關如何在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中實現幻燈片效果有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。