• 一款基于css3的3D图片翻页切换特效


    今天给大家分享一款基于css3的3D图片翻页切换特效。单击图片下方的滑块会切换上方的图片。动起你的鼠标试试吧,效果图如下:

    在线预览   源码下载

    实现的代码。

    html代码:

     <div id="imgdex">
            <figure>
        <img src="arabic-eyes.jpg" alt="Photograph of a woman's face under a Bedouin headress"><figcaption>Bedouin</figcaption>
      </figure>
            <figure>
        <img src="blue-green-eyes.jpg" alt="Photograph of a man's blue-green-eyes"><figcaption>Blue-green</figcaption>
      </figure>
            <figure>
        <img src="fake-eyelashes.jpg" alt="Photograph of dramatic fake eyelashes in closeup">
        <figcaption>Dramatic Fake</figcaption>
      </figure>
            <figure>
        <img src="snow-queen.jpg" alt="Photograph of a girl in heavy snow"><figcaption>Snow</figcaption>
      </figure>
        </div>
        <form>
        <input type="range" min="1" onfocus="this.oldvalue = this.value;" oninput="updateImage(this);this.oldvalue = this.value;"
            id="ranger">
        </form>

    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 < imgcount - 1; i++) {
                if (window.CP.shouldStopExecution(1)) {
                    break;
                }
                var rotation = parseFloat(-92 + '.' + (imgcount - i));
                figs[i].style.webkitTransform = 'rotateX(' + rotation + 'deg)';
                figs[i].style.transform = 'rotateX(' + rotation + 'deg)';
            }
            window.CP.exitedLoop(1);
            document.querySelector('#imgdex figure:last-child figcaption').style.opacity = 1;
            function updateImage(slider) {
                var currentimg = document.querySelector('#imgdex figure:nth-child(' + slider.value + ')');
                if (slider.oldvalue !== undefined) {
                    var oldimg = document.querySelector('#imgdex figure:nth-child(' + slider.oldvalue + ')');
                } else {
                    slider.oldvalue = imgcount;
                    var oldimg = document.querySelector('#imgdex figure:nth-child(' + slider.oldvalue + ')');
                }
                if (slider.value < slider.oldvalue) {
                    currentimg.style.webkitTransform = 'rotateX(' + slider.value + 'deg)';
                    currentimg.style.transform = 'rotateX(' + slider.value + 'deg)';
                }
                if (slider.value > 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;
                }
            }

    via:http://www.w2bc.com/Article/18867

  • 相关阅读:
    SpringMVC—对Ajax的处理(含 JSON 类型)(2)
    md5加密(1)
    js生成邀请码(2)
    SpringMVC---依赖注入与面向切面
    初识json
    java集合类(2)
    springmvc与struts2的区别
    模拟14
    NOIP模拟13
    NOIP模拟12
  • 原文地址:https://www.cnblogs.com/liaohuolin/p/4251863.html
Copyright © 2020-2023  润新知