今天就跟大家聊聊有關如何在css中實現(xiàn)幻燈片效果,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
永濟網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,永濟網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為永濟1000多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的永濟做網(wǎng)站的公司定做!
下面我們就通過代碼來一步步實現(xiàn)幻燈片切換(淡入淡出)的效果:
1、建立html文件,編寫demo
首先我們要在頁面上設置圖像列表,包含在div盒子中。類似于以下內(nèi)容:
在此示例中,所有圖像都有鏈接,但這不是必需的。如果你刪除鏈接,你只需要改變一些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(xiàn)在所缺少的只是一點JavaScript來將面對的圖像移動到堆棧的底部,以便下一個圖像可以依次顯示和淡出。
3、使用JavaScript來觸發(fā)效果
這里需要的只是為keyframe 動畫結束時觸發(fā)的圖像分配事件處理程序。它需要最重要的照片,并把它移到后面:
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);
最上面的新圖像現(xiàn)在假設為 nth-of-type(1)屬性,包括關鍵幀動畫--fader,依此類推其他圖像。
就是這樣!沒有臃腫的代碼,沒有插件,沒有庫,只有幾行vanilla JavaScript可以在所有現(xiàn)代瀏覽器中使用。
4、效果圖:
運行以上代碼就可以獲得一個簡單的淡入淡出幻燈片:
看完上述內(nèi)容,你們對如何在css中實現(xiàn)幻燈片效果有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。