zoukankan      html  css  js  c++  java
  • 编写一个 类似妙为的2013年官网的弹窗效果

    编写一个 类似妙为的2013年官网的弹窗效果

    1 html 

    <body>
            <div class="main">
                <div class="wrap" id="wrap">
                    <h2>叫我大头就好</h2>
                    <ul class="ul" id="ul">
                        <li><span>111111</span><b>2016-10-31</b></li>
                        <li><span>111111</span><b>2016-10-31</b></li>
                        <li><span>111111</span><b>2016-10-31</b></li>
                        <li><span>111111</span><b>2016-10-31</b></li>
                        <li><span>111111</span><b>2016-10-31</b></li>
                        <li><span>111111</span><b>2016-10-31</b></li>
                    </ul>
                    <a href="#" class="close" id="close"></a>
                    <div class="trun" id="trun">叫我大头</div>
                </div>
            </div>
        </body>
    View Code

    2 html 的样式

    <style>
                * {
                    padding: 0;
                    margin: 0;
                }
                
                ul {
                    list-style: none;
                }
                
                .main {
                    width: 300px;
                    min-height: 0;
                    margin: 20px auto;
                    border: 2px solid goldenrod;
                    position: relative;
                }
                
                .wrap {
                    background: #F1F1F1;
                    width: 300px;
                    height: 70px;
                    /* 220*/
                    margin: 0px auto;
                    position: absolute;
                    top: 150px;
                    overflow: hidden;
                    opacity: 0;
                    -webkit-perspective: 800px;
                    perspective: 800px;
                    -webkit-transform-style: preserve-3d;
                    transform-style: preserve-3d;
                    /* -webkit-transition: 1s all; 
                    -moz-transition: 1s all; 
                    transition: 1s all;*/
                }
                
                .wrap h2 {
                    height: 70px;
                    width: 100%;
                    line-height: 70px;
                    background: #F1F1F1;
                }
                
                .wrap li {
                    height: 50px;
                    width: 100%;
                    border: 1px solid none;
                    box-sizing: border-box;
                    background: #F1F1F1;
                    line-height: 50px;
                    background-image: url(images/em_bg.png);
                    background-position: calc(100% - 15px) 0;
                    background-size: contain;
                    background-repeat: no-repeat;
                    transform-origin: bottom center;
                    -webkit-transform-origin: top center;
                    transform: rotateX(-90deg);
                    -webkit-transform: rotateX(-90deg);
                    transition: 0.5s;
                }
                .wrap li span{position: absolute; left: 0;top: 0;height: 100%;width: auto;}
                .wrap li b{position: absolute; right: 0;top: 0;height: 100%;width: auto;}
                
                @keyframes rotateZ {
                    0% {
                        transform: rotateZ(0deg);
                        -webkit-transform: rotateZ(0deg);
                        -webkit-transform-origin: center center;
                    }
                    
                    100% {
                        transform: rotateZ(360deg);
                        -webkit-transform: rotateZ(360deg);
                        -webkit-transform-origin: center center;
                    }
                }
                .wrap .close {
                    height: 19px;
                    width: 19px;
                    background-image: url(images/close.png);
                    background-position: 0 0;
                    background-size: contain;
                    background-repeat: no-repeat;
                    position: absolute;
                    top: 25.5px;
                    display: block;
                    right: 15px;
                    line-height: 19px;
                }
                .wrap .close:hover {
                    -moz-animation: 0.5s rotateZ;
                    -webkit-animation: 0.5s rotateZ;
                    animation: 0.5s rotateZ;
                }
                .trun{
                    position: absolute;
                    top: 70px;
                    left: 0;
                    height: calc(100% - 70px);
                    width: 100%;
                    font-size: 30px;
                    background: green;
                    text-align: center;
                    display: none;
                }
                .active{
                    box-shadow:0px 5px 20px rgba(148, 92, 78, 0.4);
                    background:#ffde00;
                    /*border : 1px solid #F1F1F1;*/
                }
            </style>

    3  现在是最关键的伟大的JavaScript代码

    window.onload = function() {
                    var wrap = document.getElementById("wrap")
                    var ul = document.getElementById("ul")
                    var li = wrap.getElementsByTagName('li')
                    var close = document.getElementById("close")
                    var H = getCurrentStyle(wrap, 'height')
                    var trun = document.getElementById("trun")
                    wrap.style.transition = '1s ease-in opacity,.8s 0.5s ease-in-out height,.5s 0.5s  top'
                    wrap.style.opacity = 1
                    wrap.style.height = 220 + 'px'
                    wrap.style.top = (200 - parseInt(H)) / 2 + "px"
                    
                    for(var i = 0; i < H.length; i++) {
                        
                        li[i].style.transition = "1.5s  " + 0.5 + i * 2000 + "ms "
                        li[i].style.webkitTransform = "rotateX(0deg)"
                        li[i].style.webkitTransformOrigin = "top " ;
                        
                    }
                    var span = document.getElementById("ul").getElementsByTagName('span')
                    var b =  document.getElementById("ul").getElementsByTagName('b')
                    for(var i = 0; i < span.length; i++) {
                        span[i].addEventListener('mouseover',function(){
                            var parent = this.parentNode
                            parent.className = "active "
                            parent.style.transition = '0.5s '
                            parent.style.webkitTransform = 'rotateY(-30deg)'
                            parent.style.webkitTransformOrigin = "center center  " ;
                            //进行翻转
                            this.addEventListener('click',function(){
                                Trun(li,360,2,0,1)
                            },false)
                        })
                        span[i].addEventListener('mouseout',function(){
                            var parent = this.parentNode
                            parent.className = ""
                            parent.style.transition = '0.5s '
                            parent.style.webkitTransform = 'rotateY(0deg)'
                            parent.style.webkitTransformOrigin = "center center "
                        })
                    }
                    for(var j = 0; j < b.length; j++) {
                        b[j].addEventListener('mouseover',function(){
                            var parent = this.parentNode
                            parent.className = " active "
                            parent.style.transition = '0.5s '
                            parent.style.webkitTransform = 'rotateY(30deg)'
                            parent.style.webkitTransformOrigin = "center center "
                            
                            this.addEventListener('click',function(){
                                clickfn(parent);
                            },false)
                        })
                        b[j].addEventListener('mouseout',function(){
                          
                            var parent = this.parentNode
                  parent.classname="" parent.style.transition
    = '0.5s ' parent.style.webkitTransform = 'rotateY(0deg)' parent.style.webkitTransformOrigin = "center center " }) } close.addEventListener('click', function() { var height = getCurrentStyle(wrap, "height") var top = getCurrentStyle(wrap, "top") wrap.style.transition = "1s all" wrap.style.opacity = 0 wrap.style.height = 0 wrap.style.top = (parseInt(top) + parseInt(height) )/2+ "px" }) } //点击li 进行翻转 function clickfn(){ var iNow = 0; var iMax = 0; for(var i=0;i<li.length;i++) { if(iMax<Math.abs(i-this.index)) { iMax=Math.abs(i-this.index); iNow=i; } li[i].style.transition="0.5s "+Math.abs(i-this.index)*100+"ms cubic-bezier(0.115, -0.195, 0.255, -0.280)"; li[i].style.WebkitTransform="rotateY("+iDeg+"deg)"; li[i].style.opacity=0.1; } li[iNow].addEventListener("webkitTransitionEnd",end,false); function end() { this.removeEventListener("webkitTransitionEnd",end,false); trun.style.opacity=1; } } // X 进行翻转 trun.addEventListener('click',function(){ this.style.transition = '0.5s ' this.style.opacity = 0 this.addEventListener('webkitTransitionEnd',function(){ },false) },false) function getCurrentStyle(ele, attr) { if(ele.currentStyle) { return ele.currentStyle[attr]; //IE } else { return getComputedStyle(ele, false)[attr]; }; }; </script>
    结语:我想吐血  不要问我为什么  你懂得                  2016-11-0419:56:36
  • 相关阅读:
    jps命令
    Collection
    java.lang包中异常
    final关键字
    JVM运行时数据区域
    String详解
    哈希码
    Java虚拟机
    垃圾收集器与内存分配策略
    solr简介
  • 原文地址:https://www.cnblogs.com/webph/p/6031535.html
Copyright © 2011-2022 走看看