mui侧滑导航(左侧)

这篇博客介绍了如何利用MUI框架构建一个高效的侧滑导航。通过导入必要的CSS和JS文件,添加特定的样式类,可以轻松实现侧滑效果。在页面加载时,使用Ajax请求数据并显示在主页面。同时提到了使用laytpl模板引擎来处理侧滑菜单的数据加载,以实现更高效的数据渲染。

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

MUI-最接近原生APP体验的高性能前端框架
mui侧滑导航(左侧)效果图:
这里写图片描述

导入mui控件需要的css,js文件:

 <link href="../resources/ui/mui-master/dist/css/mui.css" rel="stylesheet"/>
   <script type="text/javascript" src="../resources/js/jquery.js"></script>
   <script type="text/javascript" src="../resources/ui/mui-master/js/mui.min.js"></script>
   <script type="text/javascript" src="../resources/ui/layer/laytpl.js"></script>

实现mui侧滑导航的效果很简单,只需要添加一些class样式就可以实现。

  <div id="offCanvasWrapper" class="mui-off-canvas-wrap mui-draggable">
 	<div class="mui-inner-wrap">
 	<!--header-->
	  <header class="mui-bar mui-bar-nav">
	    <a href="#offCanvasSide" class="mui-icon-bars mui-icon mui-icon-left-nav mui-pull-left"></a>
	    <h1 class="mui-title" id="title">事项审批(人事)</h1>
	  </header>
	  <!--侧滑菜单部分-->
		<aside id="offCanvasSide" class="mui-off-canvas-left">
			<div id="offCanvasSideScroll" class="mui-scroll-wrapper">
				<div class="mui-scroll">
					<span class="android-only"></span>
					<div class="content">
						<p style="margin: 10px 10px;">
							<button id="offCanvasHide" type="button" class="mui-btn mui-btn-danger mui-btn-block" style="padding: 5px 20px;">流程分类</button>
						</p>
					</div>
					<div id="menu1" class="menu">
						<ul id="cateen1" class="mui-table-view mui-table-view-chevron mui-table-view-inverted">
							<script id="canteensrc1" type="text/html">
								{{# for(var i = 0, len = d.list.length; i < len; i++){ }}
				      				<li class="mui-table-view-cell">
									<a   class="mui-navigate-right"href="javascript:void(0);" onClick="addapply('{{d.list[i].id}}')">
				        		      	{{d.list[i].text}}
				      				</a>
									</li>
								{{# } }}
							</script>
						</ul>
					</div>
				</div>
			</div>
		</aside>
		<!--主页面-->
	  <div id="offCanvasContentScroll" class="mui-content mui-scroll-wrapper">
		<div class="mui-scroll">
			<div id="menu" class="menu">
       			<ul id="table" class="mui-table-view mui-grid-view mui-grid-9"></ul>
       		</div>
		</div>
	 </div>
	</div>
</div>

页面加载的时候,ajax请求数据并在主页面显示:

var typeid=$("#typeid").val();//类型值
		var data = _ajax.jsonajax('../exammanager/getFormlist.do?flag=0&typeid='+typeid,false,null,'json');
		var uihtml="";
		$(data.list).each(function(index,value){
			var html="<li class=\"mui-table-view-cell mui-media mui-col-xs-4\"><a href=\"\" onclick=\"apply('"+value.id+"','"+value.attributes+"')\"><span class=\"mui-icon "+value.miconCls+"\"></span><div class=\"mui-media-body\">"+value.name+"</div></a></li>";
			uihtml+=html;
		});
		$("#table").html(uihtml);

侧滑导航栏如下:
这里写图片描述
侧滑菜单数据的加载不太一样:

//侧滑菜单
		var typedata = _ajax.jsonajax('../mobleexammanager/getJbpmTypeTree.do',false,null,'json');
		gettpl = document.getElementById('canteensrc1').innerHTML;
		laytpl(gettpl).render(typedata,function(html){
			$("#cateen1").html(html);
		});

laytpl是一款非常轻量的JavaScript模板引擎,它用巧妙的实现方式,将自身的体积浓缩为不到2KB的字符,laytpl试图打造极致的模版渲染!

//假设你得到了这么一段数据
var data = {
  title: '前端圈',
  intro: '一群码js的骚年,幻想改变世界,却被世界改变。',
  list: [{name: '贤心', city: '杭州'},  {name: '谢亮', city: '北京'}, {name: '浅浅', city: '杭州'}, {name: 'Dem', city: '北京'}]
};

模板:

<h3>{{ d.title }}</h3>
<p class="intro">{{ d.intro }}</p>
<ul>
{{# for(var i = 0, len = d.list.length; i < len; i++){ }}
  <li>
    <span>{{ d.list[i].name }}</span>
    <span>所在城市:{{ d.list[i].city }}</span>
  </li>
{{# } }}
</ul>

网上找到的实例:

//第一步:编写模版。你可以使用一个script标签存放模板,如:
<script id="demo" type="text/html">
<h1>{{ d.title }}</h1>
<ul>
{{# for(var i = 0, len = d.list.length; i < len; i++){ }}
  <li>
    <span>姓名:{{ d.list[i].name }}</span>
    <span>城市:{{ d.list[i].city }}</span>
  </li>
{{# } }}
</ul>
</script>

//第二步:建立视图。用于呈现渲染结果。
<div id="view"></div>

//第三步:渲染模版
var data = {
  title: '前端攻城师',
  list: [{name: '贤心', city: '杭州'}, {name: '谢亮', city: '北京'}, {name: '浅浅', city: '杭州'}, {name: 'Dem', city: '北京'}]
};
var gettpl = document.getElementById('demo').innerHTML;
laytpl(gettpl).render(data, function(html){
  document.getElementById('view').innerHTML = html;
});

我的实例的模板:

<script id="canteensrc1" type="text/html">
								{{# for(var i = 0, len = d.list.length; i < len; i++){ }}
				      				<li class="mui-table-view-cell">
									<a   class="mui-navigate-right"href="javascript:void(0);" onClick="addapply('{{d.list[i].id}}')">
				        		      	{{d.list[i].text}}
				      				</a>
									</li>
								{{# } }}
							</script>

ajax获取数据并填充:

//侧滑菜单
		var typedata = _ajax.jsonajax('../mobleexammanager/getJbpmTypeTree.do',false,null,'json');
		gettpl = document.getElementById('canteensrc1').innerHTML;
		laytpl(gettpl).render(typedata,function(html){
			$("#cateen1").html(html);
		});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值