vue 手机号码抽奖 上下滚动动画

<!DOCTYPE>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>Document</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <link rel="stylesheet" type="text/css" href="css/mui.css" />
    <style type="text/css">
        .in-out-translate-demo-wrapper {
            position: relative;
            height: 58px;
        }
        
        .in-out-translate-demo-wrapper button {
            position: absolute;
        }
        
        .in-out-translate-fade-enter-active,
        .in-out-translate-fade-leave-active {
            transition: all .5s;
            -webkit-transition: all .5s;
            -moz-transition: all .5s;
            -o-transition: all .5s;
        }
        
        .in-out-translate-fade-enter,
        .in-out-translate-fade-leave-active {
            opacity: 0;
        }
        
        .in-out-translate-fade-enter {
            transform: translateX(54px);
            -webkit-transform: translateX(54px);
            -moz-transform: translateX(54px);
            -o-transform: translateX(54px);
        }
        
        .in-out-translate-fade-leave-active {
            transform: translateX(-54px);
            -webkit-transform: translateX(-54px);
            -moz-transform: translateX(-54px);
            -o-transform: translateX(-54px);
        }
        
        .down-up-translate-fade-enter-active,
        .down-up-translate-fade-leave-active {
            transition: all .1s;
            -webkit-transition: all .1s;
            -moz-transition: all .1s;
            -o-transition: all .1s;
        }
        
        .down-up-translate-fade-enter,
        .down-up-translate-fade-leave-active {
            opacity: 1;
        }
        
        .down-up-translate-fade-enter {
            /*transform: translateY(40px);
            -webkit-transform: translateY(40px);
            -moz-transform: translateY(40px);
            -o-transform: translateY(40px);*/
        }
        
        .down-up-translate-fade-leave-active {
            transform: translateY(-50px);
            -webkit-transform: translateY(-50px);
            -moz-transform: translateY(-50px);
            -o-transform: translateY(-50px);
        }
        
        .num {
            /*position: relative;*/
            width: 100%;
            height: 50px;
            overflow: hidden;
        }
        
        .num .span {
            /*position: absolute;*/
            background: #0062CC;
            color: #fff;
            width: 30px;
            height: 50px;
            line-height: 50px;
            font-size: 40px;
            font-weight: bold;
            float: left;
            margin-right: 2px;
        }
        
        .num .span div {
            background: #0062CC;
            color: #fff;
            width: 30px;
            height: 50px;
            line-height: 50px;
            font-size: 40px;
            font-weight: bold;
        }
    </style>
</head>

<body>
    <div id="demo" class="demo">
        <div class="in-out-translate-demo-wrapper mui-text-center">
            <transition name="in-out-translate-fade">
                <button v-if="show" v-on:click="start" key="start" type="button" class="mui-btn mui-btn-blue mui-btn-outlined">开始</button>
                <button v-else key="end" v-on:click="end" type="button" class="mui-btn mui-btn-yellow mui-btn-outlined">结束</button>
            </transition>

        </div>
        <div class="num mui-text-center">
            <div class="span">
                <div>1</div>
            </div>              
            <div class="span">
                <transition name="down-up-translate-fade">
                    <div :key="i">{{i}}</div>
                </transition>
            </div>
            <div class="span">
                <transition name="down-up-translate-fade">
                    <div :key="j">{{j}}</div>
                </transition>
            </div>
            <div class="span">
                <div>*</div>
            </div>
            <div class="span">
                <div>*</div>
            </div>  
            <div class="span">
                <div>*</div>
            </div>  
            <div class="span">
                <div>*</div>
            </div>                  
            <div class="span">
                <transition name="down-up-translate-fade">
                    <div :key="k">{{k}}</div>
                </transition>
            </div>
            <div class="span">
                <transition name="down-up-translate-fade">
                    <div :key="l">{{l}}</div>
                </transition>
            </div>  
            <div class="span">
                <transition name="down-up-translate-fade">
                    <div :key="i">{{i}}</div>
                </transition>
            </div>
            <div class="span">
                <transition name="down-up-translate-fade">
                    <div :key="j">{{j}}</div>
                </transition>
            </div>              
        </div>
    </div>
    <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/velocity/1.5.0/velocity.min.js"></script>-->
    <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        
        new Vue({
            el: '#demo',
            data: {
                show: true,
                i: 0,
                j:0,
                k: 0,
                l: 0,
                interval: null
            },
            methods: {
                start: function() {
                    this.show = !this.show
                    var _this = this;

                    if(!this.interval) {
                        this.interval = setInterval(function() {
                            _this.i = Math.floor(Math.random() * 10);
                            _this.j = Math.floor(Math.random() * 10);
                            _this.k = Math.floor(Math.random() * 10);
                            _this.l = Math.floor(Math.random() * 10);
                        }, 10)
                    }
                },
                end: function() {
                    this.show = !this.show

                    clearInterval(this.interval)
                    this.interval = null
                }
            }
        })
    </script>
</body>

</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容