3D实现字帖画卷

效果图

画纸.gif

代码如下

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv='Content-Type' content="text/html; charset=utf-8">
    <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
    <title>3D画卷</title>
</head>
<style>
    *{margin:0px;padding:0px;}
    .wrap{width:1200px;height:600px;position:absolute;left:50%;top:50%;margin-left: -600px;margin-top:-300px;border:1px solid #ccc;-webkit-perspective: 2400px;-webkit-transform-style: preserve-3d; }
    .wrap h1{height:600px;width:100px;word-wrap:break-word;color:black;font-size:70px;letter-spacing: 4px;position:relative;text-align:center;z-index:999;background:black;color:white;}
    .wrap h1 button{width:60px;height:60px;text-align:center;}
    .wrap div{position:absolute;left:101px;top:0px;width:100px;height:100%;-webkit-transform-style: preserve-3d;-webkit-transform-origin: left;-webkit-transform: rotateY(180deg);}
    .wrap>div{left:100px;}
    .wrap div span{height:600px;width:100px;word-wrap:break-word;color:white;background:black;font-size:56px;text-align:center;display:block;border-right:1px dashed white;}
    .wrap div.show{-webkit-animation: 1.3s show;-webkit-transform: rotateY(0deg);}
    .wrap div.hide{-webkit-animation: 1.3s hide;-webkit-transform: rotateY(180deg);}
    @-webkit-keyframes show {
        0%{-webkit-transform: rotateY(180deg)}
        25%{-webkit-transform: rotateY(-30deg)}
        50%{-webkit-transform: rotateY(15deg)}
        75%{-webkit-transform: rotateY(8deg)}
        85%{-webkit-transform: rotateY(-8deg)}
        90%{-webkit-transform: rotateY(4deg)}
        100%{-webkit-transform: rotateY(0deg)}
    }
    @-webkit-keyframes hide {
        0%{-webkit-transform: rotateY(0deg);}
        100%{-webkit-transform: rotateY(180deg);}
    }
</style>
<body>
<div class="wrap" id="wrap">
    <h1>笠翁对韵<button id="btn">展开</button></h1>
    <div>
        <span>天对地,雨对风。</span>
        <div>
            <span>大陆对长空。</span>
            <div>
                <span>山花对海树,</span>
                 <div>
                     <span>
                       赤日对苍穹。
                     </span>
                     <div>
                         <span>
                          雷隐隐,雾蒙蒙。
                         </span>
                         <div>
                             <span>
                               日下对天中。
                             </span>
                             <div>
                                 <span>
                                     风高秋月白,
                                 </span>
                                 <div>
                                     <span>
                                           雨霁晚霞红。
                                     </span>
                                     <div>
                                         <span>
                                           牛女二星河左右,
                                         </span>
                                         <div>
                                             <span>
                                                参商两曜斗西东。
                                             </span>
                                               <div>
                                                   <span>
                                                       请看下页
                                                   </span>
                                               </div>
                                         </div>
                                     </div>
                                 </div>
                             </div>
                         </div>
                     </div>
                 </div>
            </div>
        </div>
    </div>
</div>

</body>
<script>
    var btn = document.getElementById("btn");
    var wrap = document.getElementById("wrap");
    var flag = true;
    var index = 0 ;
    var timer = null;
    btn.onclick = function(){
        //开始前清空定时器
        clearInterval(timer);
        if(flag)
        {
            timer = setInterval(function(){
                wrap.getElementsByTagName("div")[index].className = "show";
                ++index;
                if(index == wrap.getElementsByTagName("div").length)
                {
                    clearInterval(timer);
                    flag = false;
                    btn.innerHTML = "收缩";
                }

            },100)
        }else
        {
            timer = setInterval(function(){
                --index;
                wrap.getElementsByTagName("div")[index].className = "hide";
                if(index == 0)
                {
                    clearInterval(timer);
                    flag = true;
                    btn.innerHTML = "展开";
                }
            },100)
        }
    }
</script>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,387评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 所有相遇和回眸都是缘分,当你爱上某个背影,意味你已经心系一段情缘!只是缘深缘浅,任谁都无丛把握,聚散无由,流水落花...
    弱水三千629阅读 1,324评论 0 0
  • 17岁,明艳张扬;28岁,沉重小心翼翼。17岁,一眼爱情,爱得浓烈勇敢;28岁,认定习惯,迷失自己,爱得胆怯...
    樱木的跑篮衫阅读 1,643评论 0 0
  • 大脸\文 首发于个人微信公众号:大脸and小脸 从小到大,看惯了男人们在带娃和哄娃这件事情上的无能及无所作为,不敢...
    大脸and小脸阅读 1,823评论 0 0

友情链接更多精彩内容