CSS3相冊幻燈片播放,是一種常見的網頁視覺效果。這種效果可以讓用戶在瀏覽相冊時,能夠享受到一種流暢、美麗的視覺體驗。實現這種效果的方法,主要是通過運用CSS3的動畫和過渡效果來完成。
//CSS3代碼實現 .gallery { position: relative; height: 400px; width: 600px; margin: 0 auto; overflow: hidden; } .slider { position: absolute; top: 0; left: 0; height: 100%; width: 500%; -webkit-transition: -webkit-transform 1s; -moz-transition: -moz-transform 1s; -ms-transition: -ms-transform 1s; -o-transition: -o-transform 1s; transition: transform 1s; } .slider figure { position: relative; display: inline-block; width: 20%; height: 100%; margin: 0; padding: 0; text-align: center; background-size: cover; background-position: center; background-repeat: no-repeat; float: left; } .slider figure:nth-child(1) { background-image: url("image1.jpg"); } .slider figure:nth-child(2) { background-image: url("image2.jpg"); } .slider figure:nth-child(3) { background-image: url("image3.jpg"); } .slider figure:nth-child(4) { background-image: url("image4.jpg"); } .slider figure:nth-child(5) { background-image: url("image5.jpg"); } .slider figure:nth-child(6) { background-image: url("image6.jpg"); }
下面是JS代碼的實現,用于實現循環播放效果。當最后一張圖片過渡完成后,將跳轉到第一張圖片。
//JS代碼實現 let slideIndex = 0; showSlides(); function showSlides() { let i; let slides = document.getElementsByClassName("slider")[0].getElementsByTagName("figure"); for (i = 0; i< slides.length; i++) { slides[i].style.display = "none"; } slideIndex++; if (slideIndex >slides.length) { slideIndex = 1 } slides[slideIndex - 1].style.display = "block"; setTimeout(showSlides, 3000); // 每 3 秒切換一次幻燈片 }
為了實現CSS3相冊幻燈片播放,需要定義一個包含所有幻燈片的容器 .gallery。將所有幻燈片元素放在一個.slider 的容器中,并用CSS3過渡效果定義幻燈片滾動時所需的變換。定義幻燈片是一個具有相同高度但比容器寬得多的圖像區域,通過往左移動,實現循環播放的效果。JS代碼用于循環播放效果的實現,通過設置計時器,使得每隔一段時間就會更換幻燈片,實現自動循環播放。這就是實現CSS3相冊幻燈片播放的主要實現流程。