欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

一款基于css3的3D图片翻页切换特效_html/css_WEB-ITnose

程序员文章站 2024-02-01 22:24:58
...
今天给大家分享一款基于css3的3D图片翻页切换特效。单击图片下方的滑块会切换上方的图片。动起你的鼠标试试吧,效果图如下:

在线预览 源码下载

实现的代码。

html代码:

 
一款基于css3的3D图片翻页切换特效_html/css_WEB-ITnose
Bedouin
一款基于css3的3D图片翻页切换特效_html/css_WEB-ITnose
Blue-green
一款基于css3的3D图片翻页切换特效_html/css_WEB-ITnose
Dramatic Fake
一款基于css3的3D图片翻页切换特效_html/css_WEB-ITnose
Snow

css3代码:

  #imgdex        {            position: relative;            -webkit-perspective: 4000px;            perspective: 4000px;            width: 80%;            max-width: 1200px;            margin: 0 auto;            -webkit-transform-style: preserve-3d;            transform-style: preserve-3d;            font-family: Avenir, Calibri, sans-serif;            padding-top: 45%;        }        #imgdex figure, #imgdex figure figcaption        {            position: absolute;            -webkit-transition: 1s ease-in-out;            transition: 1s ease-in-out;        }        #imgdex figure        {            top: 0;            left: 120px;            -webkit-transform-origin: left bottom;            -ms-transform-origin: left bottom;            transform-origin: left bottom;            width: 70%;        }        #imgdex figure img        {            width: 100%;        }        #imgdex figure figcaption        {            bottom: 0;            font-size: 1.2rem;            left: -8rem;            opacity: 0;        }        #imgdex figure:last-of-type        {            -webkit-transform: rotateX(5deg);            transform: rotateX(5deg);            box-shadow: 0px 0px 200px rgba(0,0,0,0.5);        }        form        {            text-align: center;            padding-bottom: 2rem;        }        form input[type="range"]        {            width: 50%;        }

js代码:

  var imgdex = document.getElementById('imgdex'), figs = imgdex.querySelectorAll('figure'), imgcount = figs.length;        ranger.max = imgcount;        ranger.value = imgcount;        for (var i = 0; i  slider.oldvalue) {                var rotation = parseFloat(-92 + '.' + (imgcount - slider.value));                oldimg.style.webkitTransform = 'rotateX(' + rotation + 'deg)';                oldimg.style.transform = 'rotateX(' + rotation + 'deg)';            }            if (slider.value !== slider.oldvalue) {                currentimg.querySelector('figcaption').style.opacity = 1;                oldimg.querySelector('figcaption').style.opacity = 0;            }        }