美文网首页
颗粒翻页HTML5+CSS3

颗粒翻页HTML5+CSS3

作者: 函数function | 来源:发表于2016-12-03 17:27 被阅读0次
颗粒翻页.png
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>李立昌 http://www.jianshu.com/users/b1e8423ae7e2/latest_articles</title>
<style>
    *{
        margin: 0;
        padding: 0;
    }
    #box{
        width: 700px;
        height: 400px;
        background: #ccc;
        margin:50px auto;
        position: relative;
    }
    #box span{
        position: absolute;
        transform-style: preserve-3d;
        transform:perspective(800px) rotateY(0deg);
    }
    #box span .front{
        width:100%;
        height: 100%;
        position: absolute;
        transform:translateZ(1px);
        background: url("img/0.jpg") no-repeat;
    }
    #box span .back{
        width:100%;
        height: 100%;
        position: absolute;
        transform:scale(-1,1) translateZ(-1px);
        background: url("img/1.jpg") no-repeat;
    }

</style>
<script>
    document.addEventListener('DOMContentLoaded',function(){
        var oBox = document.getElementById('box');
        var C = 7;
        var R = 4;
        for(var r = 0;r<R;r++){
            for(var c = 0;c<C;c++){
                //创建span
                var oSpan = document.createElement('span');
                var w = oBox.offsetWidth/C;
                var h = oBox.offsetHeight/R;
                oSpan.style.width = w +'px';
                oSpan.style.height = h +'px';
                oSpan.style.left = w*c+'px';
                oSpan.style.top = h*r+'px';
                oSpan.innerHTML = '<em class="front"></em><em class="back"></em>';
                oBox.appendChild(oSpan);
                oSpan.c = c;
                oSpan.r = r;
                oSpan.children[0].style.backgroundPosition = -oSpan.offsetLeft+'px -'+oSpan.offsetTop+'px';
                oSpan.children[1].style.backgroundPosition = -oSpan.offsetLeft+'px -'+oSpan.offsetTop+'px';
            }
        }
        var iNow = 0;
        var bReady = true;
        //点击
        var aSpan = oBox.children;
        oBox.onclick = function(){
            if(bReady==false){return;}
            bReady = false;
            iNow++;
            for(var i=0;i<aSpan.length;i++){
                aSpan[i].style.transition = '1s all ease '+200*(aSpan[i].r+aSpan[i].c)+'ms';
                aSpan[i].style.transform = 'perspective(800px) rotateY(180deg)';
            }
        };
        aSpan[aSpan.length-1].addEventListener('transitionend',function(){
            bReady = true;
            for(var i = 0;i<aSpan.length;i++){
                //瞬间拉回
                aSpan[i].style.transition = 'none';
                aSpan[i].style.transform = 'perspective(800px) rotateY(0deg)';
                //console.log(iNow,iNow%3,iNow+1)%3);
                //换图
                aSpan[i].children[0].style.backgroundImage = 'url("img/'+iNow%3+'.jpg")';
                aSpan[i].children[1].style.backgroundImage = 'url("img/'+((iNow+1)%3)+'.jpg")';
            }
        },false);
    },false);
</script>
</head>
<body>
<div id="box"></div>
</body>
</html>

相关文章

网友评论

      本文标题:颗粒翻页HTML5+CSS3

      本文链接:https://www.haomeiwen.com/subject/zrycmttx.html