美文网首页
新年贺卡制作

新年贺卡制作

作者: 小学生的博客 | 来源:发表于2017-02-20 22:36 被阅读75次

    根据慕课网上视频,写的。


    imgimg

    记录一下:
    html:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"/>
        <meta name="viewport" content="width=device-width,initial-scale=1.0, 
        minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <meta name="format-detection" content="telephone=no"/>
        <title>慕课贺春</title>
        
        <link rel="stylesheet" type="text/css" href="css/style.css"/>
        <script type="text/javascript" src="js/main.js"></script>
    </head>
    <body>
        <div class="music">
            <img src="img/music_pointer.png">
            <img id="music" class="play" src="img/music_disc.png">
        </div>
        <div class="page" id="page1">
            <div class="bg"></div>
            <div class="p1_lantern">点击屏幕<br />开启好运2016</div>
            <div class="p1_immoc"></div>
            <div class="p1_words">2016年慕课网新年特献</div>
        </div>
        <div class="page" id="page2">
            <div class="p2_bg_loading"></div>
            <div class="bg"></div>
            <div class="p2_circle"></div>
            <div class="p2_2016"></div>
        </div>
        <div class="page" id="page3">
            <div class="bg"></div>
            <div class="p3_logo"></div>
            <div class="p3_title"></div>
            <div class="p3_second"></div>
            <div class="p3_first"></div>
            <div class="p3_blessing"></div>
        </div>
        
        <audio autoplay="true">
        <source src="http://www.imooc.com/activity/project/project1/audio/happynewyear.mp3" type="audio/mpeg">
        
        </audio>
    </body>
    </html>
    

    css:

    /* all tag */
    
    * {
        margin: 0;
        padding: 0;
        border: none;
        font-size: 1.5625vw;
        font-family: "microsoft yahei";
    }
    
    html,
    body {
        height: 100%;
        overflow: hidden;
    }
    
    
    /**
     * music tag
     */
    
    .music {
        width: 15vw;
        height: 15vw;
        border: 4px solid #ef1639;
        position: fixed;
        top: 3vh;
        right: 4vw;
        z-index: 5;
        border-radius: 50%;
        background: #fff;
    }
    
    .music > img:first-of-type {
        position: absolute;
        top: 24%;
        right: 2.5%;
        width: 28.421%;
        z-index: 1;
    }
    
    .music > img:last-of-type {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        width: 79%;
        z-index: 0;
    }
    
    .music > img.play {
        -webkit-animation: music_disc 4s linear infinite;
        -moz-animation: music_disc 4s linear infinite;
        -ms-animation: music_disc 4s linear infinite;
        -o-animation: music_disc 4s linear infinite;
        animation: music_disc 4s linear infinite;
    }
    
    @-webkit-keyframes music_disc {
        0% {
            -webkit-transform: rotate(0deg);
            -moz-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        100% {
            -webkit-transform: rotate(360deg);
            -moz-transform: rotate(360deg);
            transform: rotate(360deg);
        }
    }
    
    @keyframes music_disc {
        0% {
            -webkit-transform: rotate(0deg);
            -moz-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        100% {
            -webkit-transform: rotate(360deg);
            -moz-transform: rotate(360deg);
            transform: rotate(360deg);
        }
    }
    
    
    /**
     * page tag
     */
    
    .page {
        position: absolute;
        width: 100%;
        height: 100%;
    }
    
    .page > .bg {
        position: absolute;
        z-index: -1;
        height: 100%;
        width: 100%;
    }
    
    
    /**
     * page1 tag
     */
    
    #page1 {
        display: block;
    }
    
    #page1 > .bg {
        background: url(../img/p1_bg.jpg) no-repeat center center;
        background-size: 100%;
    }
    
    #page1 > .p1_lantern {
        position: absolute;
        top: -3.4%;
        right: 0;
        left: 0;
        margin: auto;
        background: url(../img/p1_lantern.png) no-repeat center bottom;
        background-size: 100%;
        width: 45vw;
        height: 71.2vh;
        font-size: 3.506rem;
        color: #fff;
        padding-top: 31vh;
        text-align: center;
        
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        -ms-box-sizing: border-box;
        -o-box-sizing: border-box;
        box-sizing: border-box;
    }
    
    #page1 > .p1_lantern:before {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: -1;
        content: "";
        margin: auto;
        width: 30vw;
        height: 30vw;
        background: #D60B3B;
        opacity: .5;
        border-radius: 50%;
        -webkit-box-shadow: 0 0 10vw 10vw #D60B3B;
        -moz-box-shadow: 0 0 10vw 10vw #D60B3B;
        -ms-box-shadow: 0 0 10vw 10vw #D60B3B;
        -o-box-shadow: 0 0 10vw 10vw #D60B3B;
        box-shadow: 0 0 10vw 10vw #D60B3B;
        -webkit-animation: p1_lantern .5s infinite alternate;
        -moz-animation: p1_lantern .5s infinite alternate;
        -o-animation: p1_lantern .5s infinite alternate;
        animation: p1_lantern .5s infinite alternate;
    }
    
    @-webkit-keyframes p1_lantern {
        0% {
            opacity: .5;
            -webkit-transform: scale(.8, .8);
            transform: scale(.8, .8);
        }
        100% {
            opacity: 1;
        }
    }
    
    @keyframes p1_lantern {
        0% {
            opacity: .5;
            -webkit-transform: scale(.8, .8);
            transform: scale(.8, .8);
        }
        100% {
            opacity: 1;
        }
    }
    
    #page1 > .p1_immoc {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        background: url(../img/p1_imooc.png) no-repeat center center;
        background-size: 100%;
        width: 27.656vw;
        height: 30.656vh;
        margin: auto;
    }
    
    #page1 > .p1_words {
        font-size: 2.314rem;
        position: absolute;
        right: 0;
        left: 0;
        bottom: 23px;
        text-align: center;
        color: #231815;
    }
    
    
    /**
     * page2 tag
     */
    
    #page2 {
        display: none;
        -webkit-transition: .5s;
            transition: .5s;
    }
    
    #page2.fadeOut{
        opacity: .3;
        -webkit-transform: translate(0, -100%);
            transform: translate(0, -100%);
    }
    
    #page2 > .p2_bg_loading{
        z-index: 4;
        background: #ef1639;
        -webkit-animation: p2_bg_loading 1s linear forwards;
            animation: p2_bg_loading 1s linear forwards;
    }
    
    @-webkit-keyframes p2_bg_loading{
        from{
            opacity: 1;
        }
        to{
            opacity: 0;
        }
    }
    
    @keyframes p2_bg_loading{
        from{
            opacity: 1;
        }
        to{
            opacity: 0;
        }
    }
    
    #page2 > .bg {
        background: url(../img/p2_bg.jpg) no-repeat center center;
        background-size: 100%;
    }
    
    #page2 > .p2_circle {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        border-radius: 50%;
        background: url(../img/p2_circle_outer.png) no-repeat center center;
        background-size: 100%;
        width: 59.375vw;
        height: 59.375vw;
        -webkit-animation: p2_circle_outter 1s linear 3s infinite;
        animation: p2_circle_outter 1s linear 3s infinite;
    }
    
    @-webkit-keyframes p2_circle_outter {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg);
        }
    }
    
    @keyframes p2_circle_outter {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg);
        }
    }
    
    #page2 > .p2_circle:before {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        border-radius: 50%;
        content: "";
        background: url(../img/p2_circle_middle.png) no-repeat center center;
        background-size: 100%;
        width: 45.625vw;
        height: 45.625vw;
        -webkit-animation: p2_circle_middle 1s linear 2s infinite;
        animation: p2_circle_middle 1s linear 2s infinite;
    }
    
    @-webkit-keyframes p2_circle_middle {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(720deg);
            transform: rotate(720deg);
        }
    }
    
    @keyframes p2_circle_middle {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(720deg);
            transform: rotate(720deg);
        }
    }
    
    #page2 > .p2_circle:after {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        border-radius: 50%;
        content: "";
        background: url(../img/p2_circle_inner.png) no-repeat center center;
        background-size: 100%;
        width: 39.9375vw;
        height: 39.9375vw;
        -webkit-animation: p2_circle_inner 1s linear 1s infinite;
        animation: p2_circle_inner 1s linear 1s infinite;
    }
    
    @-webkit-keyframes p2_circle_inner {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(-1080deg);
            transform: rotate(-1080deg);
        }
    }
    
    @keyframes p2_circle_inner {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(-1080deg);
            transform: rotate(-1080deg);
        }
    }
    
    #page2 > .p2_2016 {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        background: url(../img/p2_2016.png) no-repeat center center;
        background-size: 100%;
        width: 27.5vw;
        height: 6.24vh;
    }
    
    
    /**
     * page3 tag
     */
    
    #page3 {
        display: none;
        -webkit-transition: .5s;
            transition: .5s;
    }
    
    #page3.fadeIn{
        -webkit-transform: translate(0, -100%);
            transform: translate(0, -100%);
    }
    
    #page3 > .bg {
        background: url(../img/p3_bg.jpg) no-repeat center center;
        background-size: 100%;
    }
    
    #page3 > .p3_logo {
        width: 34.6875vw;
        height: 6.327vh;
        position: absolute;
        top: 7.82vh;
        right: 0;
        left: 0;
        margin: auto;
        background: url(../img/p3_logo.png) no-repeat center center;
        background-size: 100%;
    }
    
    #page3 > .p3_title {
        width: 48.125vw;
        height: 50vh;
        position: absolute;
        top: 21vh;
        right: 0;
        left: 0;
        margin: auto;
        background: url(../img/p3_title.png) no-repeat center center;
        background-size: 100%;
    }
    
    #page3 > .p3_second {
        width: 22.8125vw;
        height: 41.652vh;
        position: absolute;
        top: 25.48vh;
        left: 3.75vw;
        background: url(../img/p3_couplet_second.png) no-repeat center center;
        background-size: 100%;
    }
    
    #page3 > .p3_first {
        width: 22.8125vw;
        height: 41.652vh;
        position: absolute;
        top: 25.48vh;
        right: 3.75vw;
        background: url(../img/p3_couplet_first.png) no-repeat center center;
        background-size: 100%;
    }
    
    #page3 > .p3_blessing {
        width: 32vw;
        height: 32vh;
        position: absolute;
        right: 0;
        bottom: 3vh;
        left: 0;
        margin: auto;
        border-radius: 50%;
        background: url(../img/p3_blessing.png) no-repeat center center;
        background-size: 100%;
        -webkit-animation: p3_blessing 2s linear infinite;
        animation: p3_blessing 2s linear infinite;
    }
    
    @-webkit-keyframes p3_blessing {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
        }
    }
    
    @keyframes p3_blessing {
        from {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        to {
            -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
        }
    }
    

    js

    
    window.onload = function(){
        /*console.log("网页可见区域宽:" + document.body.clientWidth);
        console.log("网页可见区域高:" + document.body.clientHeight);
        console.log("网页可见区域宽(包括边线的宽):" + document.body.offsetWidth);
        console.log("网页可见区域高(包括边线的高):" + document.body.offsetHeight);
        console.log("网页正文全文宽:" + document.body.scrollWidth);
        console.log("网页正文全文高:" + document.body.scrollHeight);
        console.log("网页被卷去的高:" + document.body.scrollTop);
        console.log("网页被卷去的左:" + document.body.scrollLeft);
        console.log("网页正文部分上:" + window.screenTop);
        console.log("网页正文部分左:" + window.screenLeft);
        console.log("屏幕分辨率的宽:" + window.screen.width);
        console.log("屏幕分辨率的高:" + window.screen.height);
        console.log("屏幕可用工作区宽度:" + window.screen.availWidth);
        console.log("屏幕可用工作区高度:" + window.screen.availHeight);*/
        
        //获取元素
        var page1 = document.getElementById("page1");
        var page2 = document.getElementById("page2");
        var page3 = document.getElementById("page3");
        
        var music = document.getElementById("music");
        var audio = document.getElementsByTagName("audio")[0];
    
        //当音乐播放完停止的时候,自动停止光盘旋转效果
        audio.addEventListener("ended", function(event){
            music.setAttribute("class", "");
            //this.style.animationPlayState = "paused";
            //this.style.webkitAnimationPlayState = "paused";
        }, false);
        
        //点击音乐图标,控制音乐播放效果
        /*music.onclick = function(){
            if(audio.paused){
                audio.play();
                this.setAttribute("class","play");
                //this.style.animationPlayState = "running";
                //this.style.webkitAnimationPlayState = "running";
            }else{
                audio.pause();
                this.setAttribute("class","");
                //this.style.animationPlayState = "paused";
                //this.style.webkitAnimationPlayState = "paused";
            }
        }*/
        
        //点击音乐图标,控制音乐播放效果
        music.addEventListener("touchstart", function(event){
            if(audio.paused){
                audio.play();
                this.setAttribute("class","play");
                //this.style.animationPlayState = "running";
                //this.style.webkitAnimationPlayState = "running";
            }else{
                audio.pause();
                this.setAttribute("class","");
                //this.style.animationPlayState = "paused";
                //this.style.webkitAnimationPlayState = "paused";
            }
        }, false);
        
        //点击屏幕,开启好运2016
        page1.addEventListener("touchstart", function(event){
            page1.style.display = "none";
            page2.style.display = "block";
            page3.style.display = "block";
            page3.style.top = "100%";
            
            setTimeout(function(){
                page2.setAttribute("class", "page fadeOut");
                page3.setAttribute("class", "page fadeIn");
            }, 5500);
        }, false);
    }
    
    

    遇到的坑1,page3.style.top = "100%";写成了 100% ,马丹找了好久才发现问题的所在。
    遇到的坑2,引入了js,在里面写的点击事件,但是就事没有效果,经过排查,发现是上面被遮挡了,index-z 的问题。

    相关文章

      网友评论

          本文标题:新年贺卡制作

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