首页 > 其他分享 >MUI框架快速开发

MUI框架快速开发

时间:2022-11-07 17:33:49浏览次数:73  
标签:窗口 框架 MUI mui html var 选项卡 快速 页面


文章目录

  • ​​创建项目​​
  • ​​快速编写​​
  • ​​标题​​
  • ​​页面主体​​
  • ​​底部选项卡​​
  • ​​常用关键词​​
  • ​​字体图标​​
  • ​​事件处理​​
  • ​​常见手势事件​​
  • ​​窗口对象​​
  • ​​底部选项卡-页面切换​​
  • ​​底部选项卡​​
  • ​​窗口对象设置​​
  • ​​点击事件处理​​
  • ​​栅格系统​​
  • ​​页面传值​​
  • ​​通过openWindow​​
  • ​​通过自定义事件​​

创建项目

使用MUI框架搭建项目,首先我们要下载一个HBuilderX。使用HBuilderX新建一个项目,在工具栏选择文件–新建–项目。

MUI框架快速开发_mui


选择5+App项目,选择mui项目模板,输入项目名称,创建成功!

MUI框架快速开发_html_02


项目目录如下,包含基本的mui的css、js文件,入口文件是index.html。

MUI框架快速开发_webview_03

快速编写

标题

输入mh可以快速生成标题栏。

MUI框架快速开发_webview_04


生成的代码如下。

MUI框架快速开发_mui_05


页面效果如图所示。

MUI框架快速开发_mui_06

页面主体

输入mbo,创建项目主体代码。

MUI框架快速开发_webview_07


在mui-content包含的盒子内书写代码,属于项目主体的代码,当需要滚动的时候,mh生成的标题栏仍然一直在顶部。

MUI框架快速开发_ui_08

底部选项卡

输入mt,得到底部选项卡。

MUI框架快速开发_ui_09


页面显示如下。

MUI框架快速开发_css3_10

常用关键词

mui-dom结构

标题

主体

选项卡

数字角标

按钮

九宫格

区域滚动

开关

md

mh

mbo

mt

mb

mbu

mg

ms

msw

字体图标

MUI集成了自己的字体图标,输入关键词mi回车就可以得到一个字体图标的代码。

MUI框架快速开发_webview_11


MUI框架快速开发_html_12


mui提供的字体图标有限,有时候无法满足我们的需求,我们也可以使用第三方字体图标库,如​​阿里巴巴矢量图标库​​。

事件处理

MUI使用on绑定事件。
// 使用on()进行事件绑定--MUI事件处理,mui("").on(event,selector,handler)
// mui("选择器"),选中元素得到mui对象;event绑定事件名称;selector:事件委托机制,给前面选中元素内部元素添加事件;hanlder:事件回调函数;
mui(".myfooter").on("tap",".mui-tab-item",function(){
alert("按钮被点击了!");
})

常见手势事件

在开发移动端的应用时,会用到很多的手势操作,比如滑动、长按等,为了方便开放者快速集成这些手势,mui内置了常用的手势事件,目前支持的手势事件见如下列表:

分类

参数

描述

点击

tap

单击屏幕

doubletap

双击屏幕

长按

longtap

长按屏幕

hold

按住屏幕

release

离开屏幕

滑动

swipeleft

向左滑动

swiperight

向右滑动

swipeup

向上滑动

swipedown

向下滑动

拖动

dragstart

开始拖动

drag

拖动中

dragend

拖动结束

窗口对象

  1. ​​H5+ Webview窗口对象​​
  2. ​Webview介绍​

底部选项卡-页面切换

底部选项卡

<nav class="mui-bar mui-bar-tab">
<a class="mui-tab-item mui-active">
<span class="mui-icon mui-icon-home"></span>
<span class="mui-tab-label">首页</span>
</a>
<a class="mui-tab-item">
<span class="mui-icon mui-icon-phone"></span>
<span class="mui-tab-label">电话</span>
</a>
<a class="mui-tab-item">
<span class="mui-icon mui-icon-email"></span>
<span class="mui-tab-label">邮件</span>
</a>
<a class="mui-tab-item">
<span class="mui-icon mui-icon-gear"></span>
<span class="mui-tab-label">设置</span>
</a>
</nav>

窗口对象设置

// 窗口对象设置。首先定义一个数组,把所有页面的html的名字存储下来
var subpage = ["home.html","wealth.html","praise.html","friends.html","mine.html"];
// 添加页面:得到当前页面的窗口对象,再得到另外五个页面的窗口对象,最后使用一个append方法将其添加进来即可
mui.plusReady(function () {
// 先得到当前页面的窗口对象
var currentWebview = plus.webview.currentWebview();
for(var i= 0;i < 5;i++){
// 将五个页面对应的窗口对象都创建出来
var sub = plus.webview.create(subpage[i],subpage[i],{
top:"50px",
bottom:"50px"
});
// 将子窗口对象添加到当前页面窗口对象中
currentWebview.append(sub);
// 令打开APP首次展示的是首页,即subpage[0],若不加判断,则展示的是subpage[4]
if(i > 0){
sub.hide();
}
}
});

点击事件处理

// 事件处理。点击底部按钮,其实就是点击不同的超链接元素,切换不同的元素显示和隐藏。
// 首先,给超链接元素绑定事件,针对不同的href,显示/隐藏不同的webview
mui(".myfooter").on("tap","a",function(){
// alert(this.href);
var currentActiveTab = this.getAttribute("href");
if(currentActiveTab == mui(".mui-active")[0].getAttribute("href")){
return;
};
plus.webview.hide(mui(".mui-active")[0].getAttribute("href")); // 隐藏
plus.webview.show(currentActiveTab); // 显示
});

栅格系统

MUI 提供了非常简单实用的12列响应式栅格系统。使用时只需在外围容器上添加.mui-row,在列上添加 .mui-col-[sm|xs]-[1-12],即可。

尺寸

超小屏幕(<400px)(Extrasmall)

小屏幕(≥400px) Small

类前缀

.mui-col-xs-[1-12]

.mui-col-sm-[1-12]

列(column)数

12

可嵌套


实例:
通过定义.mui-col-sm-6类在大屏(≥400px)设备上会展现为并排的两列,而.mui-col-xs-12在小屏(<400px)设备上会覆盖之前定义的类展现为水平排列。

<div class="mui-content">
<div class="mui-row">
<div class="mui-col-sm-6 mui-col-xs-12">
<li class="mui-table-view-cell">
<a class="mui-navigate-right">
Item 1
</a>
</li>
</div>
<div class="mui-col-sm-6 mui-col-xs-12">
<li class="mui-table-view-cell">
<a class="mui-navigate-right">
Item 1
</a>
</li>
</div>
</div>
</div>

页面传值

通过openWindow

old.html

<button type="button" class="mui-btn mui-btn-blue" id="openwindow">按钮</button>
<script type="text/javascript">
var openwindow = document.getElementById("openwindow");
openwindow.addEventListener("tap",function(){
mui.openWindow({
url:"new_file.html",
id:"new_file.html",
extras:{
username:"爱发脾气的小老虎",
password:"123456",
}
})
})
</script>

new.html

<script type="text/javascript">
mui.init()
</script>
<script>
mui.plusReady(function(){
// 获取当前的窗口对象下的username值
var currentwindow = plus.webview.currentWebview();
alert(currentwindow.username);
alert(currentwindow.password);
})
</script>

通过自定义事件

old.html

<button type="button" class="mui-btn mui-btn-blue" id="open2">自定义事件</button>
<script>
var file = document.getElementById("open2");
open2.addEventListener("tap",function(){
// 指明要打开的窗口
mui.openWindow({
url:"new_file2.html",
id:"new_file2.html",
})
var targetwebview = plus.webview.getWebviewById("new_file2.html");
// 需要传值的目标webview,自定义事件名称,json格式的数据
mui.fire(targetwebview,"getname",{username:"list"});
})
</script>

new.html

<script type="text/javascript">
mui.init()
</script>
<script>
window.addEventListener("getname",function(e){
alert(e.detail.username)
})
</script>

【参考】

  1. ​​MUI的简介​​


标签:窗口,框架,MUI,mui,html,var,选项卡,快速,页面
From: https://blog.51cto.com/u_15867142/5830147

相关文章

  • uni-app框架开发app中出现的问题(持续更新中...)
    uni-app框架开发app中出现的问题​​uview中图标不显示​​​​无法使用彩色iconfont​​​​滚动回顶部​​​​监听横屏和录屏的变化​​​​ucharts双指缩放24小时曲线​......
  • go:快速添加接口方法及其实现
    问题描述在大型项目中,通常存在多个模块,模块对外暴露的功能通常是通过接口封装,这样可以明确模块的功能,有效降低模块与模块之间的耦合度,同时模块与模块之间进行合理的组装。......
  • Darknet框架2:YOLOV3-使用Darknet训练检测自定义模型+COCO数据集!
    YOLOV3-使用Darknet训练检测自定义模型+COCO数据集!文章目录​​一.YOLOV3网络结构​​​​二.YOLOV3Darknet编译​​​​2.1.Clone项目文件​​​​2.2.根据环境,修改......
  • java问题处理---若依框架下对某个url权限放开,登陆后访问403 Forbidden
    问题情景:  在若依框架下搭建了一套前后端代码,对某个url放开权限,后端SecurityConfig进行如下配置但当登陆系统后,请求放开权限的url,403报错。解决方案:参考:https://gi......
  • 23种设计模式之自定义Spring框架(五)
    7,自定义Spring框架7.1spring使用回顾自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。数据访问层。定义UserDao接口及其子......
  • 在SpringBoot项目中使用shiro框架实现权限管理
    1、建立springboot项目目录结构这个样子的<hr>2、项目的jar包依赖<dependencies><!--整合shirosubject:用户securitymanager:管......
  • Java 日志框架学习笔记
    日志概念1.日志文件日志文件是用于记录系统操作事件的文件集合1.1调试日志1.2系统日志系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生......
  • 自动化框架——pytest
     pytest的用处和学习目的:简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+request......
  • 测试框架概述
                    ......
  • dubbo框架学习
     计科2001黄炯杰Dubbo是一个高性能服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,使得应用可通过高性能RPC实现服务的输出和输入功能,和Sp......