• MUI学习03-弹出菜单(弹出列表)


    弹出菜单HTML代码如下:

    <div class="mui-content">       
    <!--弹出列表-----------start--> <button id="menu-btn" type="button" class="mui-btn mui-btn-success mui-btn-block" style="padding: 10px;"> 列表<span class="mui-icon mui-icon-arrowdown"></span> </button> <div id="menu-wrapper" class="menu-wrapper hidden"> <div id="menu" class="menu"> <ul class="mui-table-view mui-table-view-inverted"> <li class="mui-table-view-cell"> <a href="javascript:;">温室 1</a> </li> <li class="mui-table-view-cell"> <a href="javascript:;">温室 2</a> </li> <li class="mui-table-view-cell"> <a href="javascript:;">温室 3</a> </li> <li class="mui-table-view-cell"> <a href="javascript:;">温室 4</a> </li> </ul> </div> </div> <div id="menu-backdrop" class="menu-backdrop"></div> <div class="item-title"><span id="info">温室 1</span> <span class="time" id="time"></span></div> <!--弹出列表-----------end-->
    </div>

    引入JS:<script src="../js/mui.min.js"></script>

    JS代码如下:

    //弹出列表
        mui.init({
            swipeBack: true //启用右滑关闭功能
        });
        var menuWrapper = document.getElementById("menu-wrapper");
        var menu = document.getElementById("menu");
        var menuWrapperClassList = menuWrapper.classList;
        var backdrop = document.getElementById("menu-backdrop");
        var info = document.getElementById("info");
        var time = document.getElementById("time");
        time.innerHTML = "数据时间:" + getNowFormatDate();
        backdrop.addEventListener('tap', toggleMenu);
        document.getElementById("menu-btn").addEventListener('tap', toggleMenu);
        document.getElementById("icon-menu").addEventListener('tap', toggleMenu)
        //下沉菜单中的点击事件
        mui('#menu').on('tap', 'a', function() {
            toggleMenu();
            info.innerHTML = this.innerHTML;
            //info.innerHTML = '你已选择:'+this.innerHTML;
            time.innerHTML = "当前时间:" + getNowFormatDate();
        });
        var busying = false;
    
        function toggleMenu() {
            if(busying) {
                return;
            }
            busying = true;
            if(menuWrapperClassList.contains('mui-active')) {
                document.body.classList.remove('menu-open');
                menuWrapper.className = 'menu-wrapper fade-out-up animated';
                menu.className = 'menu bounce-out-up animated';
                setTimeout(function() {
                    backdrop.style.opacity = 0;
                    menuWrapper.classList.add('hidden');
                }, 500);
            } else {
                document.body.classList.add('menu-open');
                menuWrapper.className = 'menu-wrapper fade-in-down animated mui-active';
                menu.className = 'menu bounce-in-down animated';
                backdrop.style.opacity = 1;
            }
            setTimeout(function() {
                busying = false;
            }, 500);
        }
    
        // 获取当前日期与时间函数
        function getNowFormatDate() {
            var date = new Date();
            var seperator1 = "-";
            var seperator2 = ":";
            var month = date.getMonth() + 1;
            var strDate = date.getDate();
            if(month >= 1 && month <= 9) {
                month = "0" + month;
            }
            if(strDate >= 0 && strDate <= 9) {
                strDate = "0" + strDate;
            }
            var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate +
                " " + date.getHours() + seperator2 + date.getMinutes() +
                seperator2 + date.getSeconds();
            return currentdate;
        }

    引入CSS:<link rel="stylesheet" href="../css/mui.min.css">

    CSS添加代码如下:

                html,
                body {
                    min-height: 100%;
                    background-color: #efeff4;
                }
                .animated {
                    -webkit-animation-duration: 0.5s;
                    animation-duration: 0.5s;
                    -webkit-animation-fill-mode: both;
                    animation-fill-mode: both;
                }
                @-webkit-keyframes bounceInDown {
                    0%, 60%, 75%, 90%, 100% {
                        -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                        transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                    }
                    0% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                    60% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 25px, 0);
                        transform: translate3d(0, 25px, 0);
                    }
                    75% {
                        -webkit-transform: translate3d(0, -10px, 0);
                        transform: translate3d(0, -10px, 0);
                    }
                    90% {
                        -webkit-transform: translate3d(0, 5px, 0);
                        transform: translate3d(0, 5px, 0);
                    }
                    100% {
                        -webkit-transform: none;
                        transform: none;
                    }
                }
                @keyframes bounceInDown {
                    0%, 60%, 75%, 90%, 100% {
                        -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                        transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                    }
                    0% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                    60% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 25px, 0);
                        transform: translate3d(0, 25px, 0);
                    }
                    75% {
                        -webkit-transform: translate3d(0, -10px, 0);
                        transform: translate3d(0, -10px, 0);
                    }
                    90% {
                        -webkit-transform: translate3d(0, 5px, 0);
                        transform: translate3d(0, 5px, 0);
                    }
                    100% {
                        -webkit-transform: none;
                        transform: none;
                    }
                }
                .bounce-in-down {
                    -webkit-animation-name: bounceInDown;
                    animation-name: bounceInDown;
                }
                @-webkit-keyframes fadeInDown {
                    0%, 60%, 75%, 90%, 100% {
                        -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                        transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                    }
                    0% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                    60% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    75% {
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    90% {
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    100% {
                        -webkit-transform: none;
                        transform: none;
                    }
                }
                @keyframes fadeInDown {
                    0%, 60%, 75%, 90%, 100% {
                        -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                        transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                    }
                    0% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                    60% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    75% {
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    90% {
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    100% {
                        -webkit-transform: none;
                        transform: none;
                    }
                }
                .fade-in-down {
                    -webkit-animation-name: fadeInDown;
                    animation-name: fadeInDown;
                }
                @-webkit-keyframes bounceOutUp {
                    20% {
                        -webkit-transform: translate3d(0, -10px, 0);
                        transform: translate3d(0, -10px, 0);
                    }
                    40%,
                    45% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 20px, 0);
                        transform: translate3d(0, 20px, 0);
                    }
                    100% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                }
                @keyframes bounceOutUp {
                    20% {
                        -webkit-transform: translate3d(0, -10px, 0);
                        transform: translate3d(0, -10px, 0);
                    }
                    40%,
                    45% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 20px, 0);
                        transform: translate3d(0, 20px, 0);
                    }
                    100% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                }
                .bounce-out-up {
                    -webkit-animation-name: bounceOutUp;
                    animation-name: bounceOutUp;
                }
                @-webkit-keyframes fadeOutUp {
                    20% {
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    40%,
                    45% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    100% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                }
                @keyframes fadeOutUp {
                    20% {
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    40%,
                    45% {
                        opacity: 1;
                        -webkit-transform: translate3d(0, 0px, 0);
                        transform: translate3d(0, 0px, 0);
                    }
                    100% {
                        opacity: 0;
                        -webkit-transform: translate3d(0, -100%, 0);
                        transform: translate3d(0, -100%, 0);
                    }
                }
                .fade-out-up {
                    -webkit-animation-name: fadeOutUp;
                    animation-name: fadeOutUp;
                }
                .menu-open {
                    height: 100%;
                    width: 100%;
                }
                .menu-open .mui-scroll-wrapper {
                    position: absolute;
                    top: 48;
                    bottom: 0;
                    left: 0;
                    z-index: 1;
                    width: 100%;
                    overflow: hidden;
                    -webkit-backface-visibility: hidden;
                }
                .menu-backdrop {
                    display: none;
                }
                .menu-open .menu-backdrop {
                    position: fixed;
                    top: 0;
                    bottom: 0;
                    height: 100%;
                    width: 100%;
                    display: block;
                    z-index: 998;
                }
                .menu-wrapper {
                    position: absolute;
                    top: 48px;
                    left: 0;
                    right: 0;
                    z-index: 999;
                    text-align: center;
                    background-color: #333;
                    width: 100%;
                }
                .menu-wrapper.hidden {
                    -webkit-transform: translate3d(0, -100%, 0);
                    transform: translate3d(0, -100%, 0);
                    z-index: -1;
                }
                .menu {
                    width: 100%;
                }
                .menu .mui-table-view-inverted {
                    color: gray;
                    font-size: 19px;
                }
                .menu .mui-table-view-inverted .mui-table-view-cell:after {
                    height: 2px;
                    left: 0;
                    right: 0;
                }
                .menu-wrapper.mui-active,
                .menu-wrapper.mui-active .menu {
                    -webkit-transform: translate3d(0, 0, 0);
                    transform: translate3d(0, 0, 0);
                }
                #info{
                      padding: 20px 10px ;
                 }

    效果如下:

    注:弹出的列表是从上向下弹出的。

  • 相关阅读:
    完结篇《产品在路上》
    产品经理的七个层次
    互联网产品的交互设计
    互联网产品的用户体验
    用户体验设计 UED (下)
    用户体验设计 UED (上)
    【100Days of 100 line Code】1 day
    leetcode 392.判断子序列(Java 贪心)
    leetcode 605.种花问题(java 贪心)
    leetcode 122.买卖股票的最佳时机||(Java 贪心)
  • 原文地址:https://www.cnblogs.com/wuss/p/7802567.html
Copyright © 2020-2023  润新知