CSS3 翻页效果

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        #my3dspace{
            -webkit-perspective:800;
            -webkit-perspective-origin:50% 50%;

            overflow: hidden;
        }
        #pagegroup{
            width: 400px;
            height: 400px;
            margin: 0 auto;

            -webkit-transform-style:preserve-3d;
            position: relative;
        }

        .page{
            width: 360px;
            height: 360px;
            padding: 20px;
            background-color: black;

            color: white;
            font-weight: bold;
            font-size: 360px;
            line-height: 360px;
            text-align: center;

            position: absolute;
        }

        #page1{
            -webkit-transform-origin:bottom;
            -webkit-transition:-webkit-transform 1s linear;
        }

        #page2,#page3,#page4,#page5,#page6{
            -webkit-transform-origin:bottom;
            -webkit-transition:-webkit-transform 1s linear;
            -webkit-transform:rotateX(90deg);
        }

        #op{
            text-align: center;
            margin: 40px auto;

        }
    </style>
    <script type="text/javascript">
        var curIndex=1;
        function next(){
            if(curIndex==6)
                return;


            var  curPage=document.getElementById("page"+curIndex);
            curPage.style.webkitTransform="rotateX(-90deg)";

            curIndex++;
            var  nextPage=document.getElementById("page"+curIndex);
            nextPage.style.webkitTransform="rotateX(0deg)";
        }

        function prev(){

            if(curIndex==1)
            return;

            var  curPage=document.getElementById("page"+curIndex);
            curPage.style.webkitTransform="rotateX(90deg)";

            curIndex--;
            var  prevPage=document.getElementById("page"+curIndex);
            prevPage.style.webkitTransform="rotateX(0deg)";


        }

    </script>


</head>
<body>
    <div id="my3dspace">
        <div id="pagegroup">
            <div id="page1" class="page">1</div>
            <div id="page2" class="page">2</div>
            <div id="page3" class="page">3</div>
            <div id="page4" class="page">4</div>
            <div id="page5" class="page">5</div>
            <div id="page6" class="page">6</div>
        </div>
    </div>
    <div id="op">
            <a href="javascript:next()">next</a> <a href="javascript:prev()">previous</a>
    </div>
</body>
</html>


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>CSS3翻书效果</title>
    <style type="text/css">
        html,body,div,ul,li,p,span {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        html,body{
            height: 100%;
        }
        body{
            background-color: #999;
            padding:8px;
        }
        ul{list-style: none}
        #books{
            display: block;
            width: 980px;
            height: 100%;
            margin: auto;
            position: relative;
            counter-reset: page;
        }
        #books li{
            position: absolute;
            top: 0;
            width: 50%;
            height: 100%;
            background-color: #fff;
            transition-duration:0.5s;
            transition-property:transform,opacity;
            transform-style:preserve-3d;
            box-shadow: 0px 0px 12px #000;
        }
        #books li:nth-child(odd){
            left: 50%;
            transform:rotateY(0deg);
            trandform-origin:0 50% 0;
            opacity: 1;
        }
        #books li:nth-child(even){
            left:0;
            background: linear-gradient(90deg, #fff 92%, #eee 99%, #ccc 100%);
            transform:rotateY(180deg);
            transform-origin:100% 50% 0;
            opacity: 0;
        }
        #books li.rl:nth-child(odd){
            transform:rotateY(180deg);
            opacity: 0;
        }
        #books li.rl:nth-child(even){
            transform:rotateY(0deg);
            opacity: 1;
        }
        #books li:nth-child(odd)::before{
            right:0;
        }
        #books li:nth-child(even)::before{
            left:0;
        }
        #books li:before{
            content: counter(page);
            counter-increment: page;
            position: absolute;
            font:12px/1em "宋体";
            padding: 18px;
            bottom:0;
        }
        #books li:after{
            content:"";
            bottom:0;
            position: absolute;
            width:0;
            height:0;
            box-shadow:-1px -1px 12px #e0e0e0;
            transition-duration: 0.3s;
            transition-property: width,height;
        }
        #books li:nth-child(odd)::after{
            right:0;
            background: linear-gradient(-45deg, transparent 50%, #eee 50%, #fff 90%);
        }
        #books li:nth-child(even)::after{
            left:0;
            background: linear-gradient(45deg, transparent 50%, #eee 50%, #fff 90%);
        }
        #books li:hover::after{
            width:30px;
            height:30px;
        }
    </style>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        $(function(){
           var page=$("#books li").length;
           $("#books li").each(function(index,item){
               $(this).css("z-index",page-index);
           });
           $("#books li:even").click(function(e){
               $(this).add($(this).next()).addClass("rl");
               var obj=this;
               setTimeout(function(){
                  $(obj).add($(obj).next()).css("z-index","auto");
               },500);
           });
           $("#books li:odd").click(function(e){
              $(this).prev().css("z-index",page-$(this).index()+1);
              $(this).css("z-index",page-$(this).index());
              $(this).add($(this).prev()).removeClass("rl");
           });
        });
    </script>
</head>
<body>
    <ul id="books">
        <li><p style="font-size: 300px; text-align: center;">1</p></li>
        <li><p style="font-size: 300px; text-align: center;">2</p></li>
        <li><p style="font-size: 300px; text-align: center;">3</p></li>
        <li><p style="font-size: 300px; text-align: center;">4</p></li>
        <li><p style="font-size: 300px; text-align: center;">5</p></li>
        <li><p style="font-size: 300px; text-align: center;">6</p></li>
        <li><p style="font-size: 300px; text-align: center;">7</p></li>
        <li><p style="font-size: 300px; text-align: center;">8</p></li>
        <li><p style="font-size: 300px; text-align: center;">9</p></li>
        <li><p style="font-size: 300px; text-align: center;">10</p></li>
        <li><p style="font-size: 300px; text-align: center;">11</p></li>
        <li><p style="font-size: 300px; text-align: center;">12</p></li>
    </ul>
</body>
</html>



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值