MUI中等待框的H5实现

2018-06-07  本文已影响55人  niunan

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>

上一篇 下一篇

猜你喜欢

热点阅读