CSS3中提供了豐富的動畫效果,其中X軸旋轉圖片輪播便是其中之一。
/* 設置輪播容器樣式 */ .rotation-container { width: 500px; height: 400px; margin: 0 auto; perspective: 1200px; } /* 設置圖片樣式為絕對定位 */ .rotation-item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-align: center; display: flex; justify-content: center; align-items: center; font-size: 32px; color: #fff; background-color: #333; transform-style: preserve-3d; transition: transform 1s; } /* 設置當前圖片樣式 */ .rotation-item.current { z-index: 1; transform: rotateY(0); } /* 設置前一張圖片樣式 */ .rotation-item.prev { transform: rotateY(180deg); } /* 設置后一張圖片樣式 */ .rotation-item.next { transform: rotateY(-180deg); }
在HTML中我們需要一個輪播容器與輪播項。其中輪播項需要給定class名稱,并使用data-index屬性設置其索引號,用來計算前一張和后一張圖片。
123
在JavaScript中我們需要為輪播容器綁定鼠標移入事件,以便在用戶移入容器時停止自動播放。同時我們也需要為容器綁定鼠標移出事件,以便在用戶移出容器時重新開始自動播放。具體實現代碼如下:
var timer = null; var currentIndex = 0; var rotationItems = document.querySelectorAll('.rotation-item'); var len = rotationItems.length; var start = function () { timer = setInterval(function () { var prevIndex = (currentIndex - 1 + len) % len; var nextIndex = (currentIndex + 1) % len; rotationItems[prevIndex].className = 'rotation-item prev'; rotationItems[currentIndex].className = 'rotation-item'; rotationItems[nextIndex].className = 'rotation-item next'; currentIndex = nextIndex; }, 3000); } var stop = function () { clearInterval(timer); } var rotationContainer = document.querySelector('.rotation-container'); rotationContainer.addEventListener('mouseenter', stop); rotationContainer.addEventListener('mouseleave', start); start();
以上便是使用CSS3 X軸旋轉實現圖片輪播效果的詳細步驟,供大家參考。