MUI中等待框的H5實現

牛腩發表於2018-06-07

MUI沒有內建的那個彈出轉圈圈的那個等待框,那個nativeui.showwaiting是隻能用於app中的,不能用在H5網頁中的,網上找了下,找到個別人已經寫好的,自己 測試了下沒問題,先記下來


 

@{
    Layout = null;
    Niunan.GRWX.Model.Product product = ViewBag.product;
    Niunan.GRWX.Model.Userinfo user = ViewBag.user;
}

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>兌換禮品</title>
    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link href="/content/css/mui.min.css" rel="stylesheet" />
    <link href="/content/css/theone.css" rel="stylesheet" />
    <style>
        html,
        body {
            background-color: #efeff4;
        }

        .title {
            padding: 20px 15px 10px;
            color: #6d6d72;
            font-size: 15px;
            background-color: #fff;
        }
    </style>
    <style>
        /*----------------mui.showLoading---------------*/
        .mui-show-loading {
            position: fixed;
            padding: 5px;
            width: 120px;
            min-height: 120px;
            top: 45%;
            left: 50%;
            margin-left: -60px;
            background: rgba(0, 0, 0, 0.6);
            text-align: center;
            border-radius: 5px;
            color: #FFFFFF;
            visibility: hidden;
            margin: 0;
            z-index: 2000;
            -webkit-transition-duration: .2s;
            transition-duration: .2s;
            opacity: 0;
            -webkit-transform: scale(0.9) translate(-50%, -50%);
            transform: scale(0.9) translate(-50%, -50%);
            -webkit-transform-origin: 0 0;
            transform-origin: 0 0;
        }

            .mui-show-loading.loading-visible {
                opacity: 1;
                visibility: visible;
                -webkit-transform: scale(1) translate(-50%, -50%);
                transform: scale(1) translate(-50%, -50%);
            }

            .mui-show-loading .mui-spinner {
                margin-top: 24px;
                width: 36px;
                height: 36px;
            }

            .mui-show-loading .text {
                line-height: 1.6;
                font-family: -apple-system-font,"Helvetica Neue",sans-serif;
                font-size: 14px;
                margin: 10px 0 0;
                color: #fff;
            }

        .mui-show-loading-mask {
            position: fixed;
            z-index: 1000;
            top: 0;
            right: 0;
            left: 0;
            bottom: 0;
        }

        .mui-show-loading-mask-hidden {
            display: none !important;
        }
    </style>
</head>

<body>

 

    <div class="mui-content user-password user-addcard">
        <form class="mui-input-group" style="margin-top: 0;">
            <div class="mui-input-row">
                <label>禮品名稱</label>
                <span style="line-height:38px;">@product.proname</span>
            </div>
            <div class="mui-input-row">
                <label>使用者名稱</label>
                <span style="line-height:38px;">@user.username</span>
            </div>
            <div class="mui-input-row">
                <label>手機</label>

                <input type="text" class="mui-input-clear" id="mobile" name="mobile" value="@user.mobile" />
            </div>
            <div class="mui-input-row">
                <label>收貨地址</label>
                <input type="text" class="mui-input-clear" id="address" name="address" value="@user.address" />
            </div>
            <div class="enterbtn-wr">
                <button type="button" class="mui-btn mui-btn-danger enterbtn" id="btn1">兌換禮品</button>
                @Html.AntiForgeryToken()
                <input type="hidden" id="proid" value="@product.id" />
                <input type="hidden" id="userid" value="@user.id" />
            </div>
        </form>
    </div>


    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script src="~/Scripts/mui.min.js"></script>
    <script>
        //擴充套件mui.showLoading http://ask.dcloud.net.cn/article/12856?item_id=12464
        (function ($, window) {
            //顯示載入框
            $.showLoading = function (message, type) {
                if ($.os.plus && type !== 'div') {
                    $.plusReady(function () {
                        plus.nativeUI.showWaiting(message);
                    });
                } else {
                    var html = '';
                    html += '<i class="mui-spinner mui-spinner-white"></i>';
                    html += '<p class="text">' + (message || "資料載入中") + '</p>';

                    //遮罩層
                    var mask = document.getElementsByClassName("mui-show-loading-mask");
                    if (mask.length == 0) {
                        mask = document.createElement('div');
                        mask.classList.add("mui-show-loading-mask");
                        document.body.appendChild(mask);
                        mask.addEventListener("touchmove", function (e) { e.stopPropagation(); e.preventDefault(); });
                    } else {
                        mask[0].classList.remove("mui-show-loading-mask-hidden");
                    }
                    //載入框
                    var toast = document.getElementsByClassName("mui-show-loading");
                    if (toast.length == 0) {
                        toast = document.createElement('div');
                        toast.classList.add("mui-show-loading");
                        toast.classList.add('loading-visible');
                        document.body.appendChild(toast);
                        toast.innerHTML = html;
                        toast.addEventListener("touchmove", function (e) { e.stopPropagation(); e.preventDefault(); });
                    } else {
                        toast[0].innerHTML = html;
                        toast[0].classList.add("loading-visible");
                    }
                }
            };

            //隱藏載入框
            $.hideLoading = function (callback) {
                if ($.os.plus) {
                    $.plusReady(function () {
                        plus.nativeUI.closeWaiting();
                    });
                }
                var mask = document.getElementsByClassName("mui-show-loading-mask");
                var toast = document.getElementsByClassName("mui-show-loading");
                if (mask.length > 0) {
                    mask[0].classList.add("mui-show-loading-mask-hidden");
                }
                if (toast.length > 0) {
                    toast[0].classList.remove("loading-visible");
                    callback && callback();
                }
            }
        })(mui, window);
    </script>
    <script>

        document.getElementById('btn1').addEventListener('tap', function () {
            var userid = document.getElementById('userid').value;
            var proid = document.getElementById('proid').value;
            var mobile = document.getElementById('mobile').value;
            var zipcode = '';
            var address = document.getElementById('address').value;
            var __RequestVerificationToken = document.getElementsByName('__RequestVerificationToken')[0].value;
            var postdata = { userid: userid, proid: proid, mobile: mobile, zipcode: zipcode, address: address, __RequestVerificationToken: __RequestVerificationToken };
            console.log(postdata);
            var url = "/order/add";
            mui.showLoading("正在提交..", "div");
            mui.post(url, postdata, function (data) {
                mui.hideLoading(function () { });//隱藏後的回撥函式
                if (data.code == 0) {
                    mui.alert(data.msg, function () { location.href = "/userinfo/index" });
                } else {
                    mui.alert(data.msg);
                }
            }, 'json')
        })
    </script>


</body>

</html>

相關文章