Mui - 仿Android Dialog

本文介绍了一个简单的加载对话框实现方案,使用HTML、CSS和JavaScript创建并控制对话框的显示与隐藏,适用于网页应用中需要展示加载提示的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图:



 CSS code:

.k-pop-dialog {
	width: 9.5em;
	height: 9em;
	margin: 0 auto;
	border-radius: 0;
	z-index: 9999;
	border-radius: 20px;
	background-color: rgba(255, 255, 255, 0.8);
}

.k-center {
	position: fixed;
	left: 50%;
	top: 50%;
	-webkit-transform: translateX(-50%) translateY(-50%);
	-moz-transform: translateX(-50%) translateY(-50%);
	-ms-transform: translateX(-50%) translateY(-50%);
	transform: translateX(-50%) translateY(-50%);
}

.k-pop-dialog-title {
	position: relative;
	top: 10px;
	width: 100px;
	font-size: 15px;
}


Js code:


function buildDialog() {
	var popDialog;
	var popDialogMask;
	var msgElment;
	var isCancel = false;
	var title = "正在加载,请稍后..";
	var htmx = "<div class=\"mui-popover k-pop-dialog k-center\"><div align=\"center\" class=\"mui-loading k-center\" style=\"width: 100%;\"><span class=\"mui-spinner\" style=\"width: 3em; height: 3em;\"></span><span class=\"k-pop-dialog-title\">" + title + "</span></div></div>";
	document.body.innerHTML += htmx;
	//	console.log(document.body.innerHTML);
	popDialog = document.getElementsByClassName("k-pop-dialog")[0];
	msgElment = document.getElementsByClassName("k-pop-dialog-title")[0];
	popDialogMask = mui.createMask(function() {
		if(!popDialog.classList.contains('mui-active'))
			return true;
		if(isCancel) {
			popDialog.classList.remove('mui-active');
			document.body.style.overflow = 'auto';
		}
		return isCancel;
	});

	return {
		show: function() {

			popDialog.classList.add('mui-active');
			document.body.style.overflow = 'hidden';
			popDialogMask.show(); //显示遮罩
		},
		hide: function() {
			popDialog.classList.remove('mui-active');
			document.body.style.overflow = 'auto';
			popDialogMask.close();
		},
		setTitle: function(msg) {
			msgElment.innerText = msg;
		},
		setCancel: function(cancel) {
			isCancel = cancel;
		}
	};
}

使用:

	<script>
		mui.init();
		var dialog = buildDialog();
		//设置标题
		dialog.setTitle("加载中,不要急哟~");
		//设置点击外部是否关闭
		dialog.setCancel(false);
		//显示
		dialog.show();
		//隐藏
		dialog.hide();
	</script>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值