3d轮播
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <link rel="stylesheet/less" href="./css/3d-style.less" /> <script src="https://cdn.bootcdn.net/ajax/libs/less.js/4.1.2/less.min.js"></script> </head> <body> <div class="container"> <div class="slider-item current"> <a href="#"> <img src="https://img0.baidu.com/it/u=1644056367,3525368170&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500" alt="" /> </a> </div> <div class="slider-item second left"> <a href="#"> <img src="https://img2.baidu.com/it/u=2673137634,2396156238&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500" alt="" /> </a> </div> <div class="slider-item last"> <a href="#"> <img src="https://img1.baidu.com/it/u=949660977,962115085&fm=253&fmt=auto&app=120&f=JPEG?w=889&h=500" alt="" /> </a> </div> <div class="slider-item second right"> <a href="#"> <img src="https://img1.baidu.com/it/u=1575223201,1912539385&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500" alt="" /> </a> </div> </div> </body> <script> const oldSliderItems = document.querySelectorAll('.slider-item'), classNames = [] console.log(oldSliderItems) let timer = null const init = () => { collectClassNames() sliderAction() } function collectClassNames() { let oldSliderItem = null for (let i = 0; i < oldSliderItems.length; i++) { oldSliderItem = oldSliderItems[i] classNames.push(oldSliderItem.className) } } function render() { let oldSliderItem = null for (let i = 0; i < oldSliderItems.length; i++) { oldSliderItem = oldSliderItems[i] oldSliderItem.className = classNames[i] } } function setClassNames() { classNames.unshift(classNames.pop()) render() } function sliderAction() { timer = setInterval(setClassNames, 3000) } init() </script> </html>
open with Live server
样式文件
./css/3d-style.less
.container { width: 1000px; height: 500px; margin: 100px auto; position: relative; .slider-item { position: absolute; box-shadow: 10px 20px 10px #666; transition: all 0.6s linear; img { display: block; width: 100%; } &.current { width: 600px; z-index: 3; transform: translate3d(200px, 80px, 0); } &.second { opacity: 0.6; z-index: 2; width: 400px; &.left { transform: translate3d(0, 138px, 0); } &.right { transform: translate3d(600px, 138px, 0); } } &.last { width: 300px; opacity: 0.4; z-index: 1; transform: translate3d(350px, 50px, 0); } } }

浙公网安备 33010602011771号