zoukankan      html  css  js  c++  java
  • mui 选项卡与header文字同步

    mui底部tab固定 头部nav可变

    <!DOCTYPE html>
    <html>
    
    <head>
    	<meta charset="utf-8">
    	<title>Hello MUI</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 rel="stylesheet" href="../../css/mui.min.css">
    	<style>
    		html,
    		body {
    			background-color: #efeff4;
    		}
    		/*解决: Unable to preventDefault inside passive event listener due to target being treated as passive. */
    		* { touch-action: none; } 
    	</style>
    </head>
    
    <body>
    	<header class="mui-bar mui-bar-nav">
    		<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
    		<h1 id="title" class="mui-title">首页</h1>
    	</header>
    	<nav class="mui-bar mui-bar-tab">
    		<a id="defaultTab" class="mui-tab-item mui-active" href="tab-webview-subpage-about.html">
    			<span class="mui-icon mui-icon-home"></span>
    			<span class="mui-tab-label">首页</span>
    		</a>
    		<a class="mui-tab-item" href="tab-webview-subpage-chat.html">
    			<span class="mui-icon mui-icon-email"><span class="mui-badge">9</span></span>
    			<span class="mui-tab-label">消息</span>
    		</a>
    		<a class="mui-tab-item" href="tab-webview-subpage-contact.html">
    			<span class="mui-icon mui-icon-contact"></span>
    			<span class="mui-tab-label">通讯录</span>
    		</a>
    		<a class="mui-tab-item" href="tab-webview-subpage-setting.html">
    			<span class="mui-icon mui-icon-gear"></span>
    			<span class="mui-tab-label">设置</span>
    		</a>
    	</nav>
    	<script src="../../js/mui.min.js"></script>
    	<script type="text/javascript" charset="utf-8">
    		 //mui初始化
    		mui.init();
    		var subpages = ['tab-webview-subpage-about.html', 'tab-webview-subpage-chat.html', 'tab-webview-subpage-contact.html', 'tab-webview-subpage-setting.html'];
    		var subpage_style = {
    			top: '45px',
    			bottom: '51px'
    		};
    		
    		var aniShow = {};
    		
    		 //创建子页面,首个选项卡页面显示,其它均隐藏;
    		mui.plusReady(function() {
    			var self = plus.webview.currentWebview();
    			for (var i = 0; i < 4; i++) {
    				var temp = {};
    				var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);
    				if (i > 0) {
    					sub.hide();
    				}else{
    					temp[subpages[i]] = "true";
    					mui.extend(aniShow,temp);
    				}
    				self.append(sub);
    			}
    		});
    		 //当前激活选项
    		var activeTab = subpages[0];
    		var title = document.getElementById("title");
    		 //选项卡点击事件
    		mui('.mui-bar-tab').on('tap', 'a', function(e) {
    			var targetTab = this.getAttribute('href');
    			if (targetTab == activeTab) {
    				return;
    			}
    			//更换标题
    			title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;
                        try{
    			//显示目标选项卡
    			//若为iOS平台或非首次显示,则直接显示
    			if(mui.os.ios||aniShow[targetTab]){
    				plus.webview.show(targetTab);
    			}else{
    				//否则,使用fade-in动画,且保存变量
    				var temp = {};
    				temp[targetTab] = "true";
    				mui.extend(aniShow,temp);
    				plus.webview.show(targetTab,"fade-in",300);
    			}
    			//隐藏当前;
    			plus.webview.hide(activeTab);
                       }catch(e){}
    			//更改当前活跃的选项卡
    			activeTab = targetTab;
    		});
    		 //自定义事件,模拟点击“首页选项卡”
    		document.addEventListener('gohome', function() {
    			var defaultTab = document.getElementById("defaultTab");
    			//模拟首页点击
    			mui.trigger(defaultTab, 'tap');
    			//切换选项卡高亮
    			var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");
    			if (defaultTab !== current) {
    				current.classList.remove('mui-active');
    				defaultTab.classList.add('mui-active');
    			}
    		});
    	</script>
    </body>
    
    </html>
    

    原文 https://github.com/dcloudio/mui/blob/master/examples/hello-mui/examples/tab-webview-main.html

    mui中用vue实现[webAPP项目]基于MUI框架webAPP之头部导航与底部导航制作

    <!doctype html>
    <html>
    
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    		<link href="../../css/mui.min.css" rel="stylesheet" />
    		<link rel="stylesheet" type="text/css" href="../../fonts/iconfont.css">
    		<style>
    			[v-cloak] {
    				display: none !important;
    			}
    			/*解决: Unable to preventDefault inside passive event listener due to target being treated as passive. */
    			
    			* {
    				touch-action: none;
    			}
    		</style>
    	</head>
    
    	<body>
    		<div id="index" v-cloak>
    			<header class="mui-bar mui-bar-nav">
    				<span class="mui-icon mui-pull-right iconfont icon-kefu"></span>
    				<h1 class="mui-title" id="title">{{title}}</h1>
    			</header>
    			<nav class="mui-bar mui-bar-tab">
    				<a id="defaultTab" class="mui-tab-item mui-active" href="home.html">
    					<span class="mui-icon iconfont icon-shouye"></span>
    					<span class="mui-tab-label">首页</span>
    				</a>
    				<a class="mui-tab-item" href="shop.html">
    					<span class="mui-icon iconfont icon-shangcheng"></span>
    					<span class="mui-tab-label">商城</span>
    				</a>
    				<a class="mui-tab-item" href="task.html">
    					<span class="mui-icon iconfont icon-renwu"></span>
    					<span class="mui-tab-label">任务</span>
    				</a>
    				<a class="mui-tab-item" href="message.html">
    					<span class="mui-icon iconfont icon-xiaoxi"></span>
    					<span class="mui-tab-label">消息</span>
    				</a>
    				<a class="mui-tab-item" href="mine.html">
    					<span class="mui-icon iconfont icon-wo"></span>
    					<span class="mui-tab-label">我</span>
    				</a>
    			</nav>
    		</div>
    		<script src="../../js/mui.js"></script>
    		<script src="../../js/vue.js"></script>
    		<script type="text/javascript">
    			(function(mui, Vue) {
    				var index = new Vue({
    					el: '#index',
    					data: {
    						title: '首页'
    					},
    					mounted: function() {
    						var _this = this;
    						var subpages = ['home.html', 'shop.html', 'task.html', 'message.html', 'mine.html'];
    						var subpage_style = {
    							top: '45px',
    							bottom: '51px'
    						};
    						var aniShow = {};
    						//创建子页面,单个选项卡页面显示,其他均隐藏
    						mui.plusReady(function() {
    							//获取当前页面对象
    							var self = plus.webview.currentWebview();
    							for(var i = 0; i < subpages.length; i++) {
    								var temp = {};
    								//创建页面
    								var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);
    								if(i > 0) {
    									sub.hide(); //隐藏页面
    								} else {
    									//加载完成后关闭首页加载动画
    									temp[subpages[i]] = 'true';
    									mui.extend(aniShow, temp);
    								}
    								self.append(sub); //将webview对象填充到窗口的方法
    							}
    						})
    						//当前激活选项
    						var activeTab = subpages[0];
    						var title = document.getElementById('title');
    						mui(".mui-bar-tab").on('tap', 'a', function(e) {
    							var targetTab = this.getAttribute('href'); //获取页面href
    							//更换标题
    							_this.title = this.querySelector('.mui-tab-label').innerHTML;
    							if(targetTab == activeTab) {
    								return;
    							}
    							try {
    								//显示目标选项卡
    								//若为iOS平台或非首次显示,则直接显示
    								if(mui.os.ios || aniShow[targetTab]) {
    									plus.webview.show(targetTab);
    								} else {
    									//否则,使用fade-in动画,且保存变量
    									var temp = {};
    									temp[targetTab] = "true";
    									mui.extend(aniShow, temp);
    									plus.webview.show(targetTab, "fade-in", 300);
    								}
    								//						plus.webview.show(targetTab);//显示点击webview
    								plus.webview.hide(activeTab); //隐藏当前webview;
    							} catch(e) {
    
    							}
    							//更改当前活跃的选项卡
    							activeTab = targetTab;
    						})
    
    						//自定义事件,模拟点击“首页选项卡”
    						document.addEventListener('gohome', function(e) {
    							console.log(e)
    							var defaultTab = document.getElementById("defaultTab");
    							//模拟首页点击
    							mui.trigger(defaultTab, 'tap');
    							//切换选项卡高亮
    							var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");
    							if(defaultTab !== current) {
    								current.classList.remove('mui-active');
    								defaultTab.classList.add('mui-active');
    							}
    						});
    
    					}
    				})
    			})(mui, Vue)
    		</script>
    	</body>
    
    </html>
  • 相关阅读:
    关于二进制包安装MySQL出现yum安装保护多库场景解决
    关于 Fatal NI connect error 12170 错误
    调优排故笔记1-利用等待事件及相关文件和视图-Oracle内核揭秘
    MySQL的四种隔离级别
    Oracle绑定变量
    接口加密测试
    接口测试用例设计
    学习总结——接口测试中抓包工具的使用
    学习总结——JMeter做WebService接口功能测试
    JMeter做http接口压力测试
  • 原文地址:https://www.cnblogs.com/DCL1314/p/9107048.html
Copyright © 2011-2022 走看看