40寸自带WⅰLi苹果6splus升级后卡顿出现卡顿漫不能正常播放是哪里坏了,我现用移动网50兆。

让老笔记本重换新生:自行更换CPU升级记_使用评测_什么值得买
让老笔记本重换新生:自行更换CPU升级记
小编注:重在技术讨论,希望大家的笔记本能有效服役更久的时间~&魔都现在最高温度都快25度了~感觉夏天就在眼前了,无奈3台小(lao)伙(jia)伴(huo)都已经服役3-5年了(Y710=2009年,SL410=2010年,CQ326=2011年)&,去年都更换了SSD,内存加到4G(其实更换SSD和升级内存真心简单,S站网友的男同志基本都是高手),开机速度和程序响应速度是快了不少,可是窗口开的一多,CPU风扇就呼呼的响,而且CPU占用经常到90%以上。好吧,的确为难你们了,这些本本入手的时候,买的都是低配,用的都是屌丝的不能再屌丝的CPU,上网一查,发现当年看起来中端的CPU现在都好便宜哦&~于是萌生了升级CPU的想法(其实换CPU也不太难,主要是确定自己适合换什么样的CPU比较适合比较麻烦)~我给自己的预算是300左右,平均每台100元,然后标准是鲁大师的这个100名左右的CPU(要知道我原来的可是大部分都在200名,甚至220开外的拖拉机阿........(Y710的T名,SL410的T名,CQ326的P320=225名&)某神奇的宝逛了一圈,好久没有看硬件了,眼花缭乱阿&~于是价格排序,然后查性能,最终把目标锁定在以下三块:0、、。&漫长的等待后(其实也就2天......)陆续都到货了,好了,准备开工了(拆机有风险动手能力差的朋友还是让善于折腾的基友代劳吧......&)第一台:Y710(当年08年底的绝对高端机型,我是某宝买的备件组装机,所以CPU就选了个入门双核,屏幕也没选1080P全高清.....不过当年3K的价格,不玩游戏,配置也够用了,跑跑XP而已。)卸电池是必须的,虽然电池已经完全无法使用了......&打开后盖,其实现在换CPU很简单,这三台拆开,我都觉得很方便&好单薄的风扇阿,对于这么台17寸的庞然大物来说....还好体积大了,散热空间也自然多一点&导热管,一根是带CPU的,一根是带GPU的~&稍微清洁一下散热口~&&服役了5年的CPU,T3400,你辛苦了.....可更换的MXM接口显卡,不玩游戏,就让他服役到退役吧.....&&来个特写,现在能更换显卡的本本不多吧.....&新U上机,干净啊~&散热片上抹好导热胶~记得把原来的发硬的胶去除哦,否则影响散热效果的,压坏CPU可不好玩....&开机,一次性点亮~CPU正常认出~OYEAH~&大家关心的跑分来了.......08年的机器了,配置如上.....&老U的信息,可怜的1M二级缓存阿~&&新U,色色一一~老U的跑分,惨不忍睹啊,连2W都没有.....新U,提升50%,这次升级,划算的!才花了80块不到!原来开S站首页,7个就90%的CPU占用,现在开20个也就略卡~&&&WIN7的体验指数......可怜啊,CPU绝对拖后腿~&绝对飞跃阿~腰不酸了,腿不抽痉了~从3.4分到5.7分,还是T7700好啊~&(I7党投来BS的眼神.....) &&Y710收工~满意~第二台:COMPAQ326(2011年入手,2K+,易讯行货,入门级的双核,用惯了17寸的大本本,想搞一个便携的,13寸,黄金尺寸阿~现在仍是我的主力机,包括写这贴&)&正面现在都还觉得很好看,比另外两台指纹收集机好多了&&拔掉电池,电池也不行了,5分钟.....&现在的笔记本布局都好象哦 .....先拿掉风扇,这次三台机器都这个步骤......&卸下导热管......&也记得擦干净哦&&这块P320居然还穿了件白色的衣服.....脱掉&&服役了3年,你也下课吧.......替硬盘里的大姐姐们说一句:你辛苦了!&&新U上机,老U恋恋不舍。。。。。蹭在旁边来张合影吧:老兄,车给你开了,记得不要酒(chao)驾(ping)哦~&也是一次点亮~不错~&机器的一些配置~也是入门独显,依旧不玩游戏~&老U的信息,也是可怜巴巴的1M二级缓存。。。。。&虽然只提升到2M的缓存,但是也很不错了~再上去一档,价格就不对了~口袋瘪如狗阿。。。。&&升级以前的分数,其实也可以凑合用用了~尤其是SSD,很有意思,我12年买的OCZ的60G硬盘,比今年刚买的MAXELL的得分还高&&&&提高33%,这100也是比较值得~&WIN7体验指数,本来CPU指数是5.1的&现在居然变成6.5了~不错不错,可惜显卡是瓶颈,不过我也无所谓,另外硬盘分数居然满分,OCZ,还是有两把刷子的~其实好好做,不见得就在大陆混不下去~你用什么白片呢。。。。。。好COMPAQ326到此结束~第三台 SL410~(2014年春节左右入手的二手本,从我同学那里抢得,他换了15.6的XPS,所以SL410就被无情的抛弃了,我是红点控,一直想收一台IBM,刚好这台能做到1K以内,就顺手入了,回来后换了SSD,把不用的1G插上了,现在当备机用,这次既然大家都升级,我也一起升了吧。。。。。。怎么感觉是被打入冷宫的妃子一般幽怨。。。。。。你都不来临幸人家。。。。&)&其实我还是很喜欢THINKPAD,如果这台不是IBM,我还不一定收~不过的确,哪怕是4年前的入门机型,我都觉得设计的真心不错~只可惜屏幕上的键盘灯没有遗传。。。。。&同学保养的不错,到底不是工作用本~4年了,键盘都不油,背面也很清爽~&后盖揭掉~虽然只有一根导热管,但风扇上也用了大面积的铜片,而且本本的两侧都有散热孔,所以3台本本里,这台的散热是最好的~&风扇和导热管一体的,散热更给力~!&&左上是T4300,也是一屌丝入门U。。。。。鲁大师排名180。。。算是三台里最高分(相对而言)。。。。。。&由来只有新人笑,有谁听到旧人哭&&SP9400!开门!开门!让我进去,这是我家&&好吧,木已成舟,T4300无力回天。。。。一次点亮~其实也不是特别弱,只是随大流,三台一起换掉吧。。。。。6MB二级缓存,看网上评论说和P8600差不多的性能,那个贵20,所以就入的这个。。。。。&不过在鲁大师的排名里,名次倒是高9名,所以性价比就比较高~&&系统大致如此,因为是备机,所以只挂了一块国产32G的SSD(读2XX写1XX),另外找个根不用的1G 给加上,变成3G。换U之前的分数,好可怜。换U之后的分数,想骂人阿,才多3K分&连3W都没有破。。。。。。换U之前,WIN7处理器体验指数5.4换好之后,5.8。哎...不过说明原来的T4300本就不是特别弱吧但是还没CQ326那块2M二级缓存的CPU强,比较失望。到底是低电压版的U,弱了点&最后一台SL410,感觉是次失败的升级...算了,不管如何至少这次的换U工程都还比较顺利,尤其Y710和CQ326还有有比较大的进步的~窗口明显开的多了,温度和CPU占用的确下来了~SL410么,只能说进步有限,不过如果能内存加到4G,然后SSD换一块支持SATA2的64G的SSD的话,可能能到个34000左右的鲁大师跑分。不过因为没有独立显卡,所以要超过我的CQ326,还是有点困难,不过显卡对我来说无所谓,所以其实实际应用也还是一个水准的~最后,上一张换下来的U的合影吧,最左边一块,是4年前另一台AMD的HP本本上换下来的单核U,那台换好双核U,转给我弟弟了~现在也还在服役中,够用,够用就好~&不过,看到人家这个分数,我会告诉你,我心里澎湃不已么&&内存如果加到16G,破16W分分秒秒的事情啊~我3台本本分数加起来,都不够10W。。。。。。&好吧,还是那句,够用,就好。。。。。。安慰下自己。。。。。。&&写给想尝试升级笔记本的朋友的话:如果你的笔记本式5年以内买的,接下来并不准备玩大型游戏,只是想继续文字处理和上网的话,建议按照内存,固态硬盘,CPU的顺序来升级,基本上10年之前的本本出场都是标配2G甚至1G的,在这个基本上手机没有2G运存都不太舒服的年代,你好意思让跑WINDOWS的本本继续用1G或者2G么&,所以4G内存是最最必须的,加到4G才基本够用,5年前的内存基本还是DDR2,2010年以后的基本上都是DDR3了,某宝基本2G单根在100出头,4G单根在200左右,当然,最好先用鲁大师测一下自己机器里的内存信息,是单根还是双根,是DDR2还是DDR3,还有频率是多少的,如果可能的话,尽量买和机器里相同品牌型号的内存。然后接下来就是SSD,SSD的好处怎么说呢,开机快,开程序快,从休眠中恢复到正常工作快,如果你的主板能支持SATA2或者3,那换好SSD以后的速度差异会更明显,如果只支持SATA1,也不用灰心,可能SATA1拷大文件的时候速度有所欠缺,但是,也能和以前的机械硬盘有天差地别的使用体验(响应非常快),另外,古老的XP就千万别再用了,XP如果不单独做4K对齐的话,不能发挥出SSD的最大性能的,建议纯净安装64位WIN7(绝对不要GHOST安装),4G+SSD以后绝对跑得顺畅,最后,如果你和我一样,经常要开大量窗口浏览网页的话,CPU也是比较重要的(我换CPU以前,基本上内存60%占用的时候,CPU已经90%以上占用了),当然不代表你的CPU也一定需要换(我的CPU实在是太LOW了,不换严重的拖系统整体速度后腿),我感觉上如果你的CPU还在我给的列表里的100名以前,那文字处理和网页浏览,还有聊天还是没问题的,如果CPU的确弱了点,有换得必要的话,按照以下的方法来找合适的CPU,先确定你笔记本的CPU型号和芯片组(鲁大师的系统信息里都有)(INTEL的CPU基本上也就PM45和PM965芯片组还有早期的HM55芯片组的CPU有换的必要,后面的对于浏览网页和文字处理和聊天多媒体之类的,都是是性能过剩.....AMD的CPU就比较复杂一点,建议购买之前和卖家确定是否自己的机器能用~)然后用芯片组的型号作为关键字,在某宝搜索搜索出符合自己要求和荷包的CPU,然后在鲁大师的排名表里察看一下这块CPU的排名情况,然后度娘一下这块CPU的评价,顺便看看有没有别人的拆机图片。最后决定买的时候,问一下卖家,你的笔记本能不能换这块CPU,这样基本就能找到合适自己的CPU了,当然了,最方便的方法就是,鲁大师截个硬件信息图,然后去问某宝的卖家,有什么样的CPU可以换:基本上你把这个信息给卖家一看,卖家就知道该推荐你买什么系列的CPU了~当然,价格方面最好多问几家~另外注意有很多超轻薄的本本无法自己靠螺丝刀来更换CPU(比如X61之类的BGA封装的CPU,直接焊死在主板上的,需要有芯片级维修的笔记本修理店用热风枪吹下来,然后重新焊上新的CPU的,自己是搞不定的,而且这样的操作对手艺要求很高,吹不到位,虚焊会不稳定,吹过了头,那就毁了。。。。。&)基本上老本的二手价格已经不是很贵了,我觉得如果升级花费太大也没意思,所以加一根2G 100块,来一块64G的SSD,虽然主控略坑,300块以内还是认了吧。&我今年已经买了3块这个了。(虽然不是5大SSD厂商,但是速度阿,保修阿都还挺到位的,还是易迅自营,挺好,但是分数没有我的OCZ高,很奇怪...总的来说,性价比可以了)最后换一个100块左右的CPU,总共500块左右的升级,已经到位了(SSD投资是有必要的,以后这个笔记本就算不要了,SSD也可以挂在别的新机器上用,所以就买SATA3的好了,基本上未来三年,也都还是主流,再说了,SATA2和SATA3接口的SSD价格没太大差别)~当然CPU不是必须换得,除非你的CPU和我的一样低端。。。。。&经验完毕,本贴不是晒分数,晒性能,只是好玩~所以跑分党性能党,口下留情~我也是菜鸟一只,口袋还很瘪&最后啰嗦一句,由于小编比较担心大家在选购CPU方便遇到疑问,买到自己不能用的CPU,所以再三让我写一段关于如何挑选CPU的小经验。我本来想找各种CPU插槽的图来给大家看得,但是发觉这个方法很烂。一是你在买的CPU还没有回来以前,不一定会去拆自己的机器,第二其实CPU插槽长得都很像,就是洞的数量有区别,这个要数一遍数量实在是太没有效率了....(好几百的洞洞呢)&所以我感觉,最有效的办法是:在百度里输入:&你的笔记本型号+换CPU&看看人家是换的什么CPU,换好以后有什么问题。性能能有多少提升,如果觉得不错,最后到某宝查一下这个CPU现在的价钱,就可以拉,如果不放心,最后要和卖家再确认一下,肯定可以用哦~得到肯定回答以后,提交订单就好了!对了,记得问卖家要一点散热硅胶,换CPU的时候需要涂抹新的散热硅胶的&编后语:小编:说好的选购经验呢~&我:臣妾真的做不到阿&(先要介绍各芯片组,然后各芯片组下的各CPU有何优缺点,然后教大家如何分辨正品,然后什么样的需求换什么样的CPU,这里头的文章太深了,版面有限,学识有限,大家就放过我吧!我只是分享下我换CPU的步骤和成果.....希望大家能知道本本换CPU不是那么难的事情,老本本其实可以有新生命的,我是个恋(MEI)旧(QIAN)的人&&)。追加修改():最后补充,另外根据大家的反馈来看,容量是大家不升级SSD的唯一顾虑,其实可以把机器原来的机械硬盘拆下来,买一个光驱位的支架装到光驱的位置,光驱拆下来套一个盒子,可以变成移动光驱,总共花费53块(如果光驱位是普通SATA接口的话是这个价,如果是专用接口的,那可能稍微贵20左右)。另外,建议大家升级的顺序是内存-SSD-CPU,感觉内存可以在性能和体验上各上升20%,SSD能给使用体验上升60%,而CPU的话,感觉只给性能跑分有所提升,对日常的使用体验改善不太明显~所以很多本来CPU就不太弱的的朋友(通常T5T6系列,或者第二代I3),如果不为了跑大型游戏的话,还是先换内存和SSD吧,真的改善很明显。
推荐关注:
鼠标移到标签上方,
尝试关注标签~
相关热门原创
Yeelight皓石LED吸顶灯Pro
【轻众测】心想 即热饮水机
A.O.史密斯JSQ26-VT01燃气热水器
vivo NEX 旗舰版
直白 HL3 便携负离子吹风机
智米 ZRFFS01ZM 自然风风扇
酷冷至尊 H500M ARGB游戏机箱
Soundcore Flare 燃!无线蓝牙音箱
赞300评论125
赞136评论87
赞118评论72
赞732评论403
赞452评论561
赞594评论205
赞505评论336
赞410评论261
扫一下,分享更方便,购买更轻松
用户名/邮箱
两周内免登录donglinlinil_天涯社区
给donglinlinil发短消息:
最近玩过的游戏以iOS 7为基础,补充部分Android特有控件
折叠面板从二级列表中演化而来,dom结构和二级列表类似,如下:
面板2子内容
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell mui-collapse&&
&a class=&mui-navigate-right& href=&#&&面板1&/a&
&div class=&mui-collapse-content&&
&p&面板1子内容&/p&
可以在折叠面板中放置任何内容;折叠面板默认收缩,若希望某个面板默认展开,只需要在包含.mui-collapse类的li节点上,增加.mui-active类即可;mui官网中的方法说明,使用的就是折叠面板控件。
代码块激活字符:&&&&maccordion
actionsheet一般从底部弹出,显示一系列可供用户选择的操作按钮; actionsheet是从控件基础上演变而来,实际上就是一个固定从底部弹出的popover,故DOM结构和popove类似,只是需要在含.mui-popover类的节点上增加.mui-popover-bottom、.mui-popover-action类;
&div id=&sheet1& class=&mui-popover mui-popover-bottom mui-popover-action &&
&!-- 可选择菜单 --&
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell&&
&a href=&#&&菜单1&/a&
&li class=&mui-table-view-cell&&
&a href=&#&&菜单2&/a&
&!-- 取消菜单 --&
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell&&
&a href=&#sheet1&&&b&取消&/b&&/a&
和一样,推荐使用锚点方式显示、隐藏actionsheet;若要使用js代码动态显示、隐藏actionsheet,同样在popover插件的构造方法中传入"toggle"参数即可,如下:
//传入toggle参数,用户无需关心当前是显示还是隐藏状态,mui会自动识别处理;
mui('#sheet1').popover('toggle');
问答社区话题讨论:
代码块激活字符:&&&&mactionsheet
数字角标一般和其它控件(列表、9宫格、选项卡等)配合使用,用于进行数量提示。
角标的核心类是.mui-badge,默认为实心灰色背景;同时,mui还内置了蓝色(blue)、绿色(green)、黄色(yellow)、红色(red)、紫色(purple)五种色系的数字角标,如下:
&span class=&mui-badge&&1&/span&
&span class=&mui-badge mui-badge-primary&&12&/span&
&span class=&mui-badge mui-badge-success&&123&/span&
&span class=&mui-badge mui-badge-warning&&3&/span&
&span class=&mui-badge mui-badge-danger&&45&/span&
&span class=&mui-badge mui-badge-purple&&456&/span&
若无需底色,则增加.mui-badge-inverted类即可,如下:
&span class=&mui-badge mui-badge-inverted&&1&/span&
&span class=&mui-badge mui-badge-primary mui-badge-inverted&&2&/span&
&span class=&mui-badge mui-badge-success mui-badge-inverted&&3&/span&
&span class=&mui-badge mui-badge-warning mui-badge-inverted&&4&/span&
&span class=&mui-badge mui-badge-danger mui-badge-inverted&&5&/span&
&span class=&mui-badge mui-badge-royal mui-badge-inverted&&6&/span&
代码块激活字符:&&&&mbadge
mui默认按钮为灰色,另外还提供了蓝色(blue)、绿色(green)、黄色(yellow)、红色(red)、紫色(purple)五种色系的按钮,五种色系对应五种场景,分别为primary、success、warning、danger、royal;使用.mui-btn类即可生成一个默认按钮,继续添加.mui-btn-颜色值或.mui-btn-场景可生成对应色系的按钮,例如:通过.mui-btn-blue或.mui-btn-primary均可生成蓝色按钮;
在button节点上增加.mui-btn类,即可生成默认按钮;若需要其他颜色的按钮,则继续增加对应class即可,比如.mui-btn-blue即可变成蓝色按钮
&button type=&button& class=&mui-btn&&默认&/button&
&button type=&button& class=&mui-btn mui-btn-primary&&蓝色&/button&
&button type=&button& class=&mui-btn mui-btn-success&&绿色&/button&
&button type=&button& class=&mui-btn mui-btn-warning&&黄色&/button&
&button type=&button& class=&mui-btn mui-btn-danger&&红色&/button&
&button type=&button& class=&mui-btn mui-btn-royal&&紫色&/button&
默认按钮有底色,运行效果如下:
若希望无底色、有边框的按钮,仅需增加.mui-btn-outlined类即可,代码如下:
&button type=&button& class=&mui-btn mui-btn-outlined&&默认&/button&
&button type=&button& class=&mui-btn mui-btn-primary mui-btn-outlined&&蓝色&/button&
&button type=&button& class=&mui-btn mui-btn-success mui-btn-outlined&&绿色&/button&
&button type=&button& class=&mui-btn mui-btn-warning mui-btn-outlined&&黄色&/button&
&button type=&button& class=&mui-btn mui-btn-danger mui-btn-outlined&&红色&/button&
&button type=&button& class=&mui-btn mui-btn-royal mui-btn-outlined&&紫色&/button&
运行效果如下:
版新增加载中按钮样式,目前提供通过 JS API 切换 loading和reset状态,可以灵活操作适应多种场景
自定义文案
自定义icon
不显示icon
加载中按钮支持修改 loading状态的文案、显示的icon和icon的位置,如下:
data-loading-text
状态显示的文案,默认为: loading
data-loading-icon
状态显示的icon,默认为mui-spinner或mui-spinner mui-spinner-white(根据按钮样式自动识别),为空表示不使用icon
data-loading-icon-position
状态显示的icon的位置,支持left/right默认left
&button type=&button& data-loading-icon=&mui-spinner mui-spinner-custom& class=&mui-btn mui-btn-primary&&确认&/button&
&button type=&button& data-loading-text=&提交中& class=&mui-btn&&确认&/button&
&button type=&button& data-loading-icon-position=&right& class=&mui-btn&&确认&/button&
mui(btnElem).button('loading');//切换为loading状态
mui(btnElem).button('reset');//切换为reset状态(即重置为原始的button)
&button type=&button& data-loading-icon=&mui-spinner mui-spinner-custom& class=&mui-btn mui-btn-primary&&确认&/button&
&script type=&text/javascript&&
mui(document.body).on('tap', '.mui-btn', function(e) {
mui(this).button('loading');
setTimeout(function() {
mui(this).button('reset');
}.bind(this), 2000);
扩展阅读 代码块激活字符:&&&&
卡片视图常用于展现一段完整独立的信息,比如一篇文章的预览图、作者信息、点赞数量等,如下是一个卡片demo示例;
使用mui-card类即可生成一个卡片容器,卡片视图主要有页眉、内容区、页脚三部分组成,结构如下:
&div class=&mui-card&&
&!--页眉,放置标题--&
&div class=&mui-card-header&&页眉&/div&
&!--内容区--&
&div class=&mui-card-content&&内容区&/div&
&!--页脚,放置补充信息或支持的操作--&
&div class=&mui-card-footer&&页脚&/div&
卡片页眉及内容区,均支持放置图片;
页眉放置图片的话,需要在.mui-card-header节点上增加.mui-card-media类,然后设置一张图片做背景图即可,代码如下:
&div class=&mui-card-header mui-card-media& style=&height:40background-image:url(../images/cbd.jpg)&&&/div&
若希望在页眉放置更丰富的信息,比如头像、主标题、副标题,则需使用.mui-media-body类,示例代码如下:
&div class=&mui-card-header mui-card-media&&
&img src=&../images/logo.png& /&
&div class=&mui-media-body&&
checkbox常用于多选的情况,比如批量删除、添加群聊等;
&div class=&mui-input-row mui-checkbox&&
&label&checkbox示例&/label&
&input name=&checkbox1& value=&Item 1& type=&checkbox& checked&
默认checkbox在右侧显示,若希望在左侧显示,只需增加.mui-left类即可,如下:
&div class=&mui-input-row mui-checkbox mui-left&&
&label&checkbox左侧显示示例&/label&
&input name=&checkbox1& value=&Item 1& type=&checkbox&&
若要禁用checkbox,只需在checkbox上增加disabled属性即可;
代码块激活字符:&&&&mckeckbox
创建并显示对话框,弹出的对话框为非阻塞模式,用户点击对话框上的按钮后关闭( h5模式的对话框也可通过
关闭 ),并通过callback函数返回用户点击按钮的索引值或输入框中的值。
输入对话框
输入对话框
消息提示框
自动消失提示框
mui会根据ua判断,弹出原生对话框还是h5绘制的对话框,在基座中默认会弹出原生对话框,可以配置type属性,使得弹出h5模式对话框
两者区别:1.原生对话框可以跨webview,2.h5对话框样式统一而且可以修改对话框属性或样式
mui v3.0 版本(含)以上的dialog控件支持换行(\n)显示
提示对话框上显示的内容
提示对话框上显示的标题
提示对话框上按钮显示的内容
提示对话框上关闭后的回调函数
是否使用h5绘制的对话框
提示对话框上显示的内容
提示对话框上显示的标题
提示对话框上按钮显示的内容
提示对话框上关闭后的回调函数
是否使用h5绘制的对话框
提示对话框上显示的内容
placeholder
编辑框显示的提示文字
提示对话框上显示的标题
提示对话框上按钮显示的内容
提示对话框上关闭后的回调函数
是否使用h5绘制的对话框
如果有定制对话框样式的需求(
)可以在mui.css中修改.mui-popup类下的样式
如果需要修改DOM结构可以按照以下方式处理.
//修改弹出框默认input类型为password
mui.prompt('text','deftext','title',['true','false'],null,'div')
document.querySelector('.mui-popup-input input').type='password'
message:'String' - 消息框显示的文字内容
&&options: {JSON} &- 提示消息的参数
持续显示时间,默认值 short(2000ms)
支持 整数值 和 String ,
String可选: long(3500ms),short(2000ms)
强制使用mui消息框(div模式)
mui.toast('登陆成功',{ duration:'long', type:'div' })
关闭最后一次弹出的对话框
关闭所有对话框
问答社区话题讨论:
代码块激活字符:&&&&
mdclosepopup
mdclosepopups
图片轮播继承自,因此其DOM结构、事件均和slide插件相同;
默认不支持循环播放,DOM结构如下:
&div class=&mui-slider&&
&div class=&mui-slider-group&&
&div class=&mui-slider-item&&&a href=&#&&&img src=&1.jpg& /&&/a&&/div&
&div class=&mui-slider-item&&&a href=&#&&&img src=&2.jpg& /&&/a&&/div&
&div class=&mui-slider-item&&&a href=&#&&&img src=&3.jpg& /&&/a&&/div&
&div class=&mui-slider-item&&&a href=&#&&&img src=&4.jpg& /&&/a&&/div&
假设当前图片轮播中有1、2、3、4四张图片,从第1张图片起,依次向左滑动切换图片,当切换到第4张图片时,继续向左滑动,接下来会有两种效果:
支持循环:左滑,直接切换到第1张图片;
不支持循环:左滑,无反应,继续显示第4张图片,用户若要显示第1张图片,必须连续向右滑动切换到第1张图片;
当显示第1张图片时,继续右滑是否显示第4张图片,是同样问题;这个问题的实现需要通过.mui-slider-loop类及DOM节点来控制;
若要支持循环,则需要在.mui-slider-group节点上增加.mui-slider-loop类,同时需要重复增加2张图片,图片顺序变为:4、1、2、3、4、1,代码示例如下:
&div class=&mui-slider&&
&div class=&mui-slider-group mui-slider-loop&&
&!--支持循环,需要重复图片节点--&
&div class=&mui-slider-item mui-slider-item-duplicate&&&a href=&#&&&img src=&4.jpg& /&&/a&&/div&
&div class=&mui-slider-item&&&a href=&#&&&img src=&1.jpg& /&&/a&&/div&
&div class=&mui-slider-item&&&a href=&#&&&img src=&2.jpg& /&&/a&&/div&
&div class=&mui-slider-item&&&a href=&#&&&img src=&3.jpg& /&&/a&&/div&
&div class=&mui-slider-item&&&a href=&#&&&img src=&4.jpg& /&&/a&&/div&
&!--支持循环,需要重复图片节点--&
&div class=&mui-slider-item mui-slider-item-duplicate&&&a href=&#&&&img src=&1.jpg& /&&/a&&/div&
mui框架内置了图片轮播插件,通过该插件封装的JS API,用户可以设定是否自动轮播及轮播周期,如下为代码示例:
//获得slider插件对象
var gallery = mui('.mui-slider');
gallery.slider({
interval:5000//自动轮播周期,若为0则不自动播放,默认为0;
因此若希望图片轮播不要自动播放,而是用户手动滑动才切换,只需要通过如上方法,将interval参数设为0即可。
若要跳转到第x张图片,则可以使用图片轮播插件的gotoItem方法,例如:
//获得slider插件对象
var gallery = mui('.mui-slider');
gallery.slider().gotoItem(index);//跳转到第index张图片,index从0开始;
注意:mui框架会默认初始化当前页面的图片轮播组件;若轮播组件内容为js动态生成时(比如通过ajax动态获取的营销信息),则需要在 (包含mui-slider下所有DOM结构) 后,手动调用图片轮播的初始化方法;代码如下:
//获得slider插件对象
var gallery = mui('.mui-slider');
gallery.slider({
interval:5000//自动轮播周期,若为0则不自动播放,默认为0;
问答社区话题讨论:
代码块激活字符:&&&&mslider
栅格系统简介:
MUI 提供了非常简单实用的12列响应式栅格系统。使用时只需在外围容器上添加.mui-row,在列上添加 .mui-col-[sm|xs]-[1-12],即可
超小屏幕(&400px)(Extrasmall)
小屏幕(≥400px)
.mui-col-xs-[1-12]
.mui-col-sm-[1-12]
列(column)数
左侧:通过定义.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&&
&div class=&mui-col-sm-6 mui-col-xs-12&&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&
实例:多余的列将会另起一行排列
左侧:如果在一个.mui-row内包含的列(column)大于12个,包含多余列(column)的元素将作为一个整体单元被另起一行排列。
右侧:如果不足12个列将不会撑满整个.mui-row容器
&div class=&mui-content&&
&div class=&mui-row&&
&div class=&mui-col-sm-8&&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&
&div class=&mui-col-sm-6&&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&
实例:通过为列设置padding 属性,从而创建列与列之间的间隔
两列之间白色区域为左侧列的padding
&div class=&mui-content&&
&div class=&mui-row&&
&div class=&mui-col-sm-6& style=&padding-right: 20&&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&
&div class=&mui-col-sm-6&&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&
代码块激活字符:&&&&mrowmcolsmmcolxs
mui默认提供了手机App开发常用的字体图标,如下:()
mui-icon-contact
mui-icon-person
mui-icon-personadd
mui-icon-phone
mui-icon-email
mui-icon-chatbubble
mui-icon-chatboxes
mui-icon-weibo
mui-icon-weixin
mui-icon-pengyouquan
mui-icon-chat
mui-icon-qq
mui-icon-videocam
mui-icon-camera
mui-icon-image
mui-icon-mic
mui-icon-micoff
mui-icon-location
mui-icon-map
mui-icon-compose
mui-icon-trash
mui-icon-upload
mui-icon-download
mui-icon-close
mui-icon-closeempty
mui-icon-redo
mui-icon-undo
mui-icon-refresh
mui-icon-refreshempty
mui-icon-reload
mui-icon-loop
mui-icon-spinner mui-spin
mui-icon-spinner-cycle mui-spin
mui-icon-star
mui-icon-starhalf
mui-icon-plus
mui-icon-plusempty
mui-icon-minus
mui-icon-checkmarkempty
mui-icon-search
mui-icon-home
mui-icon-navigate
mui-icon-gear
mui-icon-settings
mui-icon-list
mui-icon-bars
mui-icon-paperplane
mui-icon-info
mui-icon-help
mui-icon-locked
mui-icon-more
mui-icon-locked
mui-icon-flag
mui-icon-paperclip
mui-icon-back
mui-icon-forward
mui-icon-arrowup
mui-icon-arrowdown
mui-icon-arrowleft
mui-icon-arrowright
mui-icon-arrowthinup
mui-icon-arrowthindown
mui-icon-arrowthinleft
mui-icon-arrowthinright
mui-icon-pulldown
使用时,只需要在span节点上分别增加.mui-icon、.mui-icon-name两个类即可(name为图标名称,例如:weixin、weibo等),如下代码即可显示一个微信图标:
&span class=&mui-icon mui-icon-weixin&&&/span&
代码块激活字符:&&&&micon
所有包裹在.mui-input-row 类中的 input、textarea等元素都将被默认设置宽度属性为width: 100%; 。 将 label 元素和上述控件控件包裹在.mui-input-group中可以获得最好的排列。
&form class=&mui-input-group&&
&div class=&mui-input-row&&
&label&用户名&/label&
&input type=&text& class=&mui-input-clear& placeholder=&请输入用户名&&
&div class=&mui-input-row&&
&label&密码&/label&
&input type=&password& class=&mui-input-password& placeholder=&请输入密码&&
&div class=&mui-button-row&&
&button type=&button& class=&mui-btn mui-btn-primary& &确认&/button&
&button type=&button& class=&mui-btn mui-btn-danger& &取消&/button&
mui目前提供的输入增强包括:快速删除、语音输入和密码框显示隐藏密码。
快速删除:只需要在input控件上添加.mui-input-clear类,当input 控件中有内容时,右侧会有一个删除图标,点击会清空当前input的内容;
&form class=&mui-input-group&&
&div class=&mui-input-row&&
&label&快速删除&/label&
&input type=&text& class=&mui-input-clear& placeholder=&请输入内容&&
搜索框:在.mui-input-row同级添加.mui-input-search 类,就可以使用search控件
&div class=&mui-input-row mui-search&&
&input type=&search& class=&mui-input-clear& placeholder=&&&
语音输入:为了方便快速输入,mui集成了
,只需要在对应input控件上添加.mui-input-speech 类,就可以在5+环境下使用语音输入
密码框:给input元素添加.mui-input-password类即可使用
&form class=&mui-input-group&&
&div class=&mui-input-row&&
&label&密码框&/label&
&input type=&password& class=&mui-input-password& placeholder=&请输入密码&&
mui在mui.init()中会自动初始化基本控件,但是
打开chrome控制台运行下面这段代码,赋予?此密码框生命力?
mui('.mui-input-row input').input();
验证表单是否为空
&div class=&mui-input-group&&
&div class=&mui-input-row&&
&label&用户名:&/label&
&input type=&text& class=&mui-input-clear& placeholder=&请输入用户名&&
&div class=&mui-input-row&&
&label&密码:&/label&
&input type=&password& class=&mui-input-clear mui-input-password& placeholder=&请输入密码&&
提交时校验三个字段均不能为空,若为空则提醒并终止业务逻辑运行,使用each()方法循环校验,如下:
mui(&#input_example input&).each(function() {
//若当前input为空,则alert提醒
if(!this.value || this.value.trim() == &&) {
var label = this.previousElementSibling;
mui.alert(label.innerText + &不允许为空&);
check = false;
return false;
}); //校验通过,继续执行业务逻辑
if(check){
mui.alert('验证通过!')
注:始终为button按钮添加type属性,若button按钮没有type属性,浏览器默认按照type="submit"逻辑处理, 这样若将没有type的button放在form表单中,点击按钮就会执行form表单提交,页面就会刷新,用户体验极差。
代码块激活字符:&&&&
列表是常用的UI控件,mui封装的列表组件比较简单,只需要在ul节点上添加.mui-table-view类、在li节点上添加.mui-table-view-cell类即可,如下为示例代码
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell&&Item 1&/li&
&li class=&mui-table-view-cell&&Item 2&/li&
&li class=&mui-table-view-cell&&Item 3&/li&
点击列表,对应列表项显示灰色高亮,若想自定义高亮颜色,只需要重写.mui-table-view-cell.mui-active即可,如下:
/*点击变蓝色高亮*/
.mui-table-view-cell.mui-active{
background-color: #0062CC;
若右侧需要增加导航箭头,变成导航链接,则只需在li节点下增加a子节点,并为该a节点增加.mui-navigate-right类即可,如下:
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&Item 1&/a&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&Item 2&/a&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&Item 3&/a&
mui支持将数字角标、按钮、开关等控件放在列表中;mui默认将数字角标放在列表右侧显示,代码如下:
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell&&Item 1
&span class=&mui-badge mui-badge-primary&&11&/span&
&li class=&mui-table-view-cell&&Item 2
&span class=&mui-badge mui-badge-success&&22&/span&
&li class=&mui-table-view-cell&&Item 3
&span class=&mui-badge&&33&/span&
图文列表继承自列表组件,主要添加了.mui-media、.mui-media-object、.mui-media-body、.mui-pull-left/right几个类,如下为示例代码
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell mui-media&&
&a href=&javascript:;&&
&img class=&mui-media-object mui-pull-left& src=&../images/shuijiao.jpg&&
&div class=&mui-media-body&&
&p class='mui-ellipsis'&能和心爱的人一起睡觉,是件幸福的事情;可是,打呼噜怎么办?&/p&
&li class=&mui-table-view-cell mui-media&&
&a href=&javascript:;&&
&img class=&mui-media-object mui-pull-left& src=&../images/muwu.jpg&&
&div class=&mui-media-body&&
&p class='mui-ellipsis'&想要这样一间小木屋,夏天挫冰吃瓜,冬天围炉取暖.&/p&
&li class=&mui-table-view-cell mui-media&&
&a href=&javascript:;&&
&img class=&mui-media-object mui-pull-left& src=&../images/cbd.jpg&&
&div class=&mui-media-body&&
&p class='mui-ellipsis'&烤炉模式的城,到黄昏,如同打翻的调色盘一般.&/p&
代码块激活字符:&&&&mlist
在popover、侧滑菜单等界面,经常会用到蒙版遮罩;比如popover弹出后,除popover控件外的其它区域都会遮罩一层蒙版,用户点击蒙版不会触发蒙版下方的逻辑,而会关闭popover同时关闭蒙版;再比如侧滑菜单界面,菜单划出后,除侧滑菜单之外的其它区域都会遮罩一层蒙版,用户点击蒙版会关闭侧滑菜单同时关闭蒙版。
遮罩蒙版常用的操作包括:创建、显示、关闭,如下代码:
var mask = mui.createMask(callback);//callback为用户点击蒙版时自动执行的回调;
mask.show();//显示遮罩
mask.close();//关闭遮罩
注意:关闭遮罩仅会关闭,不会销毁;关闭之后可以再次调用mask.show();打开遮罩;
mui默认的蒙版遮罩使用.mui-backdrop类定义(如下代码),若需自定义遮罩效果,只需覆盖定义.mui-backdrop即可;
.mui-backdrop {
position: fixed;
bottom: 0;
z-index: 998;
background-color: rgba(0,0,0,.3);
代码块激活字符:&&&&mmask
mui提供了数字输入框控件,可直接输入数字,也可以点击“+”、“-”按钮变换当前数值;默认numbox控件dom结构比较简单,如下:
&div class=&mui-numbox&&
&!-- &-&按钮,点击可减小当前数值 --&
&button class=&mui-btn mui-numbox-btn-minus& type=&button&&-&/button&
&input class=&mui-numbox-input& type=&number& /&
&!-- &+&按钮,点击可增大当前数值 --&
&button class=&mui-btn mui-numbox-btn-plus& type=&button&&+&/button&
可通过data-numbox*自定义属性设置数字输入框的参数,如下:
data-numbox-min
输入框允许使用的最小值,默认无限制
data-numbox-max
输入框允许使用的最大值,默认无限制
data-numbox-step
每次点击“+”、“-”按钮变化的步长,默认步长为1
示例:设置取值范围为0~100,每次变化步长为10,则代码如下
&div class=&mui-numbox& data-numbox-step='10' data-numbox-min='0' data-numbox-max='100'&
&button class=&mui-btn mui-numbox-btn-minus& type=&button&&-&/button&
&input class=&mui-numbox-input& type=&number& /&
&button class=&mui-btn mui-numbox-btn-plus& type=&button&&+&/button&
getValue()
获取当前值
setValue(Value)
动态设置新值 Int
setOption(options)
更新选项,可取值: min(Int),step(Int),max(Int)
mui(Selector).numbox().getValue()
mui(Selector).numbox().setValue(5)
更新选项设置步长(step)为5
mui(Selector).numbox().setOption('step',5)
mui在mui.init()中会自动初始化基本控件,但是
mui(Selector).numbox()
代码块激活字符:&&&&mnumbox
mui提供了两种侧滑导航实现:webview模式和div模式,两种模式各有优劣,适用于不同的场景。
webview模式
主页面和菜单内容在不同的webview中,两个页面根据内容需求分别组织DOM结构,mui对其DOM结构无特殊要求,故其有如下优点:
菜单内容是单独的webview,故可被多个页面复用;
菜单内容在单独的webview中,菜单区域的滚动不影响主界面,故可使用原生滚动,滚动更为流畅;
另一方面,webview模式也有其缺点:
不支持拖动手势(跟手拖动);
主页面、菜单不同webview实现,因此若需交互(如:点击菜单触发主页面内容变化),需使用实现跨webview通讯;
主页面和菜单内容在同一个webview下,嵌套在特定结构的div中,通过div的移动动画模拟菜单移动;故该模式有如下优点:
支持拖动手势(跟手拖动);
主页面、菜单在一个页面中,可通过JS轻松实现两者交互(如:点击菜单触发主页面内容变化),没有跨webview通讯的烦恼;
另一方面,div模式也有其缺点:
不支持菜单内容在多页面的复用,需每个页面都生成对应的菜单节点;
主界面和菜单内容的滚动互不影响,因此会使用div区域滚动,在低端Android手机且滚动内容较多时,可能会稍显卡顿;
div模式支持不同的动画效果,每种动画效果需遵从不同的DOM构造;下面我们以右滑菜单为例(左滑菜单仅需将菜单父节点上的mui-off-canvas-left换成mui-off-canvas-right即可),说明每种动画对应的DOM结构。
动画1:主界面移动、菜单不动
&!-- 侧滑导航根容器 --&
&div class=&mui-off-canvas-wrap mui-draggable&&
&!-- 菜单容器 --&
&aside class=&mui-off-canvas-left&&
&div class=&mui-scroll-wrapper&&
&div class=&mui-scroll&&
&!-- 菜单具体展示内容 --&
&!-- 主页面容器 --&
&div class=&mui-inner-wrap&&
&!-- 主页面标题 --&
&header class=&mui-bar mui-bar-nav&&
&a class=&mui-icon mui-action-menu mui-icon-bars mui-pull-left&&&/a&
&h1 class=&mui-title&&标题&/h1&
&div class=&mui-content mui-scroll-wrapper&&
&div class=&mui-scroll&&
&!-- 主界面具体展示内容 --&
动画2:缩放式侧滑(类手机QQ)
该种动画要求的DOM结构和动画1的DOM结构基本相同,唯一差别就是需在侧滑导航根容器class上增加一个mui-scalable类
动画3:主界面不动、菜单移动
该种动画要求的DOM结构和动画1的DOM结构基本相同,唯一差别就是需在侧滑导航根容器class上增加一个mui-slide-in类
动画4:主界面、菜单同时移动
该种动画要求的DOM结构较特殊,需将菜单容器放在主页面容器之下
&!-- 侧滑导航根容器 --&
&div class=&mui-off-canvas-wrap mui-draggable&&
&!-- 主页面容器 --&
&div class=&mui-inner-wrap&&
&!-- 菜单容器 --&
&aside class=&mui-off-canvas-left&&
&div class=&mui-scroll-wrapper&&
&div class=&mui-scroll&&
&!-- 菜单具体展示内容 --&
&!-- 主页面标题 --&
&header class=&mui-bar mui-bar-nav&&
&a class=&mui-icon mui-action-menu mui-icon-bars mui-pull-left&&&/a&
&h1 class=&mui-title&&标题&/h1&
&!-- 主页面内容容器 --&
&div class=&mui-content mui-scroll-wrapper&&
&div class=&mui-scroll&&
&!-- 主界面具体展示内容 --&
mui支持多种方式操作div模式的侧滑菜单:
1、在界面上拖动操作(drag);
2、点击含有mui-action-menu类的控件;
3、Android手机按menu键;
4、通过JS API触发,
可以有两种调用方式
mui('.mui-off-canvas-wrap').offCanvas('show');
mui('.mui-off-canvas-wrap').offCanvas().show();
你可以通过一下方式监听侧滑菜单显示隐藏
document.querySelector('.mui-off-canvas-wrap').addEventListener('shown',function (event) {
也可以通过isShown()方法判断是否为显示状态
mui('.mui-off-canvas-wrap').offCanvas().isShown();
isShown() 方法也可以传递 direction(方向) 参数()进而可以判断左右侧滑
mui('.mui-off-canvas-wrap').offCanvas().isShown('left');//true
更多问题,请参考问答社区话题讨论:
代码块激活字符:&&&&moffcanvas
mui框架内置了弹出菜单插件,弹出菜单显示内容不限,但必须包裹在一个含.mui-popover类的div中,如下即为一个弹出菜单内容:
&div id=&popover& class=&mui-popover&&
&ul class=&mui-table-view&&
&li class=&mui-table-view-cell&&&a href=&#&&Item1&/a&&/li&
&li class=&mui-table-view-cell&&&a href=&#&&Item2&/a&&/li&
&li class=&mui-table-view-cell&&&a href=&#&&Item3&/a&&/li&
&li class=&mui-table-view-cell&&&a href=&#&&Item4&/a&&/li&
&li class=&mui-table-view-cell&&&a href=&#&&Item5&/a&&/li&
要显示、隐藏如上菜单,mui推荐使用锚点方式,例如:
&a href=&#popover& id=&openPopover& class=&mui-btn mui-btn-primary mui-btn-block&&打开弹出菜单&/a&
点击如上定义的按钮,即可显示弹出菜单,再次点击弹出菜单之外的其他区域,均可关闭弹出菜单;这种使用方式最为简洁。
若希望通过js的方式控制弹出菜单,则通过如下一个方法即可:
mui('.bottomPopover').popover(status[,anchor]);
显示popover
隐藏popover
自动识别处理显示隐藏状态
mui('.bottomPopover').popover('toggle');//show hide toggle
anchorElement
//传入toggle参数,用户也无需关心当前是显示还是隐藏状态,mui会自动识别处理;
mui('.mui-popover').popover('toggle',document.getElementById(&openPopover&));
问答社区话题讨论:
代码块激活字符:&&&&mpopover
mui框架扩展了pipcker组件,可用于弹出选择器,在各平台上都有统一表现.poppicker和dtpicker是对picker的具体实现
poppicker组件依赖mui.picker.js/.css mui.poppicker.js/.css请务必在mui.js/css后中引用,也可统一引用 压缩版本:mui.picker.min.js
适用于弹出单级或多级选择器
通过new mui.PopPicker()初始化popPicker组件
var picker = new mui.PopPicker();
给picker对象添加数据
setData() 支持数据格式为:
picker.setData([{value:'zz',text:'智子'}]);
显示picker
picker.show( SelectedItemsCallback )
var picker = new mui.PopPicker();
picker.setData([{value:'zz',text:'智子'}]);
picker.show(function (selectItems) {
console.log(selectItems[0].text);//智子
console.log(selectItems[0].value);//zz
picker显示列数
picker显示按钮
如:new mui.PopPicker({buttons:['cancle','ok']})
如:picker.setData([{value:'zz',text:'智子'}])
PopPicker 创建实例并填充数据后,可以设定每个层级的选中项,因为 PopPicker 是支持多层级联的,所以,可通过 instance.pickers[index] 拿到指定层级的实例,然后通过setSelectedIndex()和setSelectedValue()两个方法,设定指定层级的选中项,如下代码供参考:
var picker = new mui.PopPicker();
picker.setData([{
value: &first&,
text: &第一项&
value: &second&,
text: &第一项&
value: &third&,
text: &第三项&
value: &fourth&,
text: &第四项&
value: &fifth&,
text: &第五项&
//picker.pickers[0].setSelectedIndex(4, 2000);
picker.pickers[0].setSelectedValue('fourth', 2000);
picker.show(function(SelectedItem) {
console.log(SelectedItem);
如果设置多级默认值可依次获取每一层级Picker对象并设置默认值,如下:
var picker = new mui.PopPicker({
picker.setData([{
value: ';,
text: '北京市',
children: [{
value: &110101&,
text: &东城区&
value: ';,
text: '天津市',
children: [{
value: &120101&,
text: &和平区&
value: &120102&,
text: &河东区&
value: &120104&,
text: &南开区&
picker.pickers[0].setSelectedIndex(1);
picker.pickers[1].setSelectedIndex(1);
picker.show(function(SelectedItem) {
console.log(SelectedItem);
参数:index
指定列表选中项
如:picker.pickers[0].setSelectedIndex(4)
参数:duration
过渡效果持续时间( ms )
如:picker.pickers[0].setSelectedIndex(4,200)
参数:callback
设置成功回调
如:picker.pickers[0].setSelectedIndex(4,200,function(){})
var picker = new mui.PopPicker();
picker.setData([{
value: &first&,
text: &第一项&,
value: &second&,
text: &第一项&
value: &third&,
text: &第三项&
value: &fourth&,
text: &第四项&
value: &fifth&,
text: &第五项&
picker.pickers[0].setSelectedIndex(4, 2000);
picker.show(function(SelectedItem) {
console.log(SelectedItem);
参数:value
指定列表选中项
如:picker.pickers[0].setSelectedValue('fourth')
参数:duration
渡效果持续时间( ms )
如:picker.pickers[0].setSelectedValue('fourth',200)
参数:callback
设置成功回调
如:picker.pickers[0].setSelectedValue('fourth', 200, function(){})
var picker = new mui.PopPicker();
picker.setData([{
value: &first&,
text: &第一项&,
value: &second&,
text: &第一项&
value: &third&,
text: &第三项&
value: &fourth&,
text: &第四项&
value: &fifth&,
text: &第五项&
picker.pickers[0].setSelectedIndex(4, 2000);
picker.show(function(SelectedItem) {
console.log(SelectedItem);
返回值[data]
获取选中的项(数组)
如:picker.getSelectedItems()
返回值:[data]
获取选中的项(数组)
如: picker.show(function(getSelectedItems){
console.log(getSelectedItems)
可以阻止选择框的关闭
隐藏picker
如:picker.hide()
释放组件资源(释放后将将不能再操作组件)
如:picker.dispose()
通常情况下,不需要释放组件资源,初始化之后,可以一直使用。
当内容较多,如不释放组件资源,在某些设备上可能会卡顿。
所以每次用完便立即调用 dispose() 进行释放,下次用时再创建新实例。
dtpicker组件适用于弹出日期选择器
通过new mui.DtPicker()初始化DtPicker组件
var dtPicker = new mui.DtPicker(options);
显示picker
dtPicker.show( SelectedItemsCallback )
var dtPicker = new mui.DtPicker();
dtPicker.show(function (selectItems) {
console.log(selectItems.y);//{text: &2016&,value: 2016}
console.log(selectItems.m);//{text: &05&,value: &05&}
1.参数:type
设置日历初始视图模式
'datetime'
完整日期视图(年月日时分)
年视图(年月日)
时间视图(时分)
月视图(年月)
时视图(年月日时)
若需要指定其他显示视图,则需要通过css来控制显示项,通过js获取对应选择项.如 ,需要在mui.dtpicker.css中设置显示视图宽度,隐藏不需要的视图
/*月日时*/
[data-type=&day&] .mui-picker,
[data-type=&day&] .mui-dtpicker-title h5 {
width: 33.3%;
[data-type=&day&] [data-id=&picker-i&],
[data-type=&day&] [data-id=&title-i&],[data-type=&day&] [data-id=&picker-y&],
[data-type=&day&] [data-id=&title-y&]
display: none;
在mui.dtpicker.js中getSelected()方法下添加selected对象值
case 'day':
selected.value = selected.m.value + '-' + selected.d.value + ' ' + selected.h.value;
selected.text = selected.m.text + '-' + selected.d.text + ' ' + selected.h.text;
2.参数:customData
设置时间/日期别名
&customData&:{
{value:&&,text:&&}
var dtpicker = new mui.DtPicker({
&type&: &time&,
&customData&: {
{ value: &am&, text: &上午& },
{ value: &pm&, text: &下午& },
dtpicker.show(function(e) {
console.log(e);
customData值生效的前提需要有指定的日期视图,如设置'y',需要在视图使用'年'视图
3.参数:labels
设置默认标签区域提示语
可设置["年", "月", "日", "时", "分"]这五个字段,可以根据视图模式选择设置个别标签,也可以设置所有标签,dtpicker显示的时候只会根据当前视图显示设置项,
建议不要设置空字符串,会影响美观哦
4.参数:beginDate
设置可选择日期最小范围
可单独设置最小年范围, 如: beginYear:2015, 其他日期支持Date格式,如:new Date(2016,5)可指定最小月份6月
5.参数:endDate
设置可选择日期最大范围
可单独设置最大年范围, 如: endYear:2017, 其他日期支持Date格式,如:new Date(2016,10)可指定最大月份11月
var dtpicker = new mui.DtPicker({
type: &datetime&,//设置日历初始视图模式
beginDate: new Date(2015, 04, 25),//设置开始日期
endDate: new Date(2016, 04, 25),//设置结束日期
labels: ['Year', 'Mon', 'Day', 'Hour', 'min'],//设置默认标签区域提示语
customData: {
{ value: 'AM', text: 'AM' },
{ value: 'PM', text: 'PM' }
}//时间/日期别名
dtpicker.show(function(e) {
console.log(e);
返回值Date
获取选中的项
var iTems = dtPicker.getSelectedItems()
/* * iTems.value 拼合后的 value * iTems.text
* 拼合后的 text
* iTems.y 年,可以通过 rs.y.vaue 和 rs.y.text 获取值和文本
* iTems.m 月,用法同年
* iTems.d 日,用法同年
* iTems.h 时,用法同年
* iTems.i 分(minutes 的第二个字母),用法同年
返回值:[data]
获取选中的项(数组)
dtpicker.show(function(items) {
/* * items.value 拼合后的 value
* items.text 拼合后的 text
* items.y 年,可以通过 rs.y.vaue 和 rs.y.text 获取值和文本
* items.m 月,用法同年
* items.d 日,用法同年
* items.h 时,用法同年
* items.i 分(minutes 的第二个字母),用法同年
console.log(items);
可以阻止选择框的关闭
隐藏dtPicker
如:dtPicker.hide()
释放组件资源(释放后将将不能再操作组件)
如:dtPicker.dispose()
通常情况下,不需要释放组件资源,初始化之后,可以一直使用。
当内容较多,如不释放组件资源,在某些设备上可能会卡顿。
所以每次用完便立即调用 dispose() 进行释放,下次用时再创建新实例。
picker组件会触发webview硬件加速,在部分手机上可以能出现卡顿或变形的情况此时需要开启硬件加速,硬件加速请参考
代码块激活字符:&&&&
mpoppicker
有准确值的进度条
有准确值的进度条会显示当前进度正处于整体进度的占比位置,用户可以更直观的预期完成时间;
使用进度条控件,需要一个进度条控件容器,mui会自动识别该容器下是否有进度条控件,若没有,则自动创建。
进度条控件DOM结构:
&div id=&demo1& class=&mui-progressbar&&
&span&&/span&
mui(container).progressbar({progress:20}).show();
mui(&#demo1&).progressbar({progress:20}).show();
progressbar初始化逻辑:
检查当前容器(container控件)自身是否包含.mui-progressbar类:
当前容器包含.mui-progressbar类,则以当前容器为目标控件,直接显示进度;
否则,检查当前容器的直接孩子节点是否包含.mui-progressbar类,若存在,则以遍历到的第一个含有.mui-progressbar类的孩子节点为目标控件,显示进度;
若当前容器的直接孩子节点,均不含.mui-progressbar类,则自动创建进度条控件;
更改显示进度条:
mui(container).progressbar().setProgress(50);
关闭进度条:
mui(container).progressbar().hide();
备注:关闭进度条一般用于动态创建(DOM中预先未定义)的进度条,调用hide方法后,会直接删掉对应的DOM节点;若已提前创建好DOM节点的进度条,调用hide方法无效;
无限循环进度条:
若无法准确提供当前进度,可以提供无限循环进度条(无限循环进度条类似于waiting等待框,参考
无限循环进度条和准确值的进度条的用法基本相同,有如下差异:
进度条控件DOM结构(多了.mui-progressbar-infinite):
&div id=&demo1& class=&mui-progressbar mui-progressbar-infinite&&
&span&&/span&
mui(&#demo1&).progressbar().show();
注意:无限循环进度条不显示具体进度,因此初始化时,不能传入progress参数;mui框架也是根据progressbar构造方法中是否包含progress参数来区分当前进度条为有准确值的进度条还是无限循环进度条;
同样因为不显示具体进度的原因,无限循环进度条调用setProgress()方法无效。
关闭进度条
mui(&#demo1&).progressbar().hide();
扩展阅读 代码块激活字符:&&&&
mprogressbar
当用户向下滚动时,标题栏逐渐由透明转变为不透明;当用户再次向上滚动时,标题栏又从不透明变为透明状态。
透明标题栏组件比较简单,只需要在header组件上添加.mui-bar-transparent类即可,如下为示例代码
&header class=&mui-bar mui-bar-nav mui-bar-transparent&&
&h1 class=&mui-title&&标题&/h1&
如果需要个性化定制可通过data-*属性或者jsAPIDIY
距离顶部高度(滚动到该位置即触发)
data-offset
滚动透明距离
{offset:150}
data-duration
过渡时间&&ms
{duration:16}
data-scrollby
监听区域滚动容器& (mui 3.5版本+支持)&默认window默认监听原生滚动,如监听mui scroll控件滚动,则: document.querySelector('.mui-scroll-wrapper')
{scrollby:DOM}
&header class=&mui-bar mui-bar-nav mui-bar-transparent& data-top='0' data-offset='150' data-duration='16' data-scrollby=&.mui-scroll-wrapper&&
&h1 class=&mui-title&&标题&/h1&
mui('.mui-bar-transparent').transparent({
offset: 150,
duration: 16,
scrollby: document.querySelector('.mui-scroll-wrapper')
问答社区参考示例:
代码块激活字符:&&&&
mtransparent
radio用于单选的情况
&div class=&mui-input-row mui-radio&&
&label&radio&/label&
&input name=&radio1& type=&radio&&
默认radio在右侧显示,若希望在左侧显示,只需增加.mui-left类即可,如下:
&div class=&mui-input-row mui-radio mui-left&&
&label&radio&/label&
&input name=&radio1& type=&radio&&
若要禁用radio,只需在radio上增加disabled属性即可;
mui基于列表控件,提供了列表式单选实现;在列表根节点上增加.mui-table-view-radio类即可,若要默认选中某项,只需要在对应li节点上增加.mui-selected类即可,dom结构如下:
&ul class=&mui-table-view mui-table-view-radio&&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&Item 1&/a&
&li class=&mui-table-view-cell mui-selected&&
&a class=&mui-navigate-right&&Item 2&/a&
&li class=&mui-table-view-cell&&
&a class=&mui-navigate-right&&Item 3&/a&
列表式单选在切换选中项时会触发selected事件,在事件参数(e.detail.el)中可以获得当前选中的dom节点,如下代码打印当前选中项的innerHTML:
var list = document.querySelector('.mui-table-view.mui-table-view-radio');
list.addEventListener('selected',function(e){
console.log(&当前选中的为:&+e.detail.el.innerText);
代码块激活字符:&&&&mradio
滑块常用于区间数字选择
&div class=&mui-input-row mui-input-range&&
&label&Range&/label&
&input type=&range& min=&0& max=&100&&
代码块激活字符:&&&&mrange
在App开发中,div区域滚动的需求是普遍存在的,但系统默认实现又有如下问题:
Android平台4.0以下不支持div滚动
Android平台4.0以上支持div滚动,但不显示滚动条
弹出层的div滚动在iOS平台存在事件透传的问题
因此,mui额外提供了区域滚动组件,使用时需要遵循如下DOM结构
&div class=&mui-scroll-wrapper&&
&div class=&mui-scroll&&
&!--这里放置真实显示的DOM内容--&
区域滚动组件默认为absolute定位,全屏显示;在实际使用过程中,需要手动设置滚动区域的位置(top和height)
若使用区域滚动组件,需手动初始化scroll控件
常用配置项:
scroll.options
options = {
scrollY: true, //是否竖向滚动
scrollX: false, //是否横向滚动
startX: 0, //初始化时滚动至x
startY: 0, //初始化时滚动至y
indicators: true, //是否显示滚动条
deceleration:0.0006, //阻尼系数,系数越小滑动越灵敏
bounce: true //是否启用回弹
示例:初始化scroll控件:
mui('.mui-scroll-wrapper').scroll({
deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
mui中iOS平台的下拉刷新(Android平台的下拉刷新使用的是双webview+原生滚动方案)、popover、可拖动式选项卡均使用了scroll组件。
为方便大家使用,mui还额外为scroll插件封装了部分方法。
要在窗口文档显示区左上角显示的文档的 x 坐标
要在窗口文档显示区左上角显示的文档的 y 坐标
滚动时间周期,单位是毫秒
示例:快速回滚到该区域顶部,代码如下:
mui('.mui-scroll-wrapper').scroll().scrollTo(0,0,100);//100毫秒滚动到顶
滚动到顶部的代码比较容易实现,坐标值设为0、0即可;但滚动到底部,需要计算该区域的实际高度,因此mui封装了scrollToBottom方法。
滚动时间周期,单位是毫秒
横向滚动只需在scroll组件基础上添加mui-slider-indicatorcode mui-segmented-control mui-segmented-control-inverted这三个class即可.(给子元素添加mui-control-item可加大文字间距增强体验如:)
&div class=&mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted&&
&div class=&mui-scroll&&
&a class=&mui-control-item mui-active&&
&a class=&mui-control-item&&
&a class=&mui-control-item&&
&a class=&mui-control-item&&
&a class=&mui-control-item&&
&a class=&mui-control-item&&
代码块激活字符:&&&&mscrollmscrollsegmented
轮播组件是mui提供的一个核心组件,在该核心组件基础上,衍生出了图片轮播、可拖动式图文表格、可拖动式选项卡、左右滑动9宫格等组件,这些组件有较多共同点。首先,Dom构造基本相同,如下:
&div class=&mui-slider&&
&div class=&mui-slider-group&&
&!--第一个内容区容器--&
&div class=&mui-slider-item&&
&!-- 具体内容 --&
&!--第二个内容区--&
&div class=&mui-slider-item&&
&!-- 具体内容 --&
当拖动切换显示内容时,会触发slide事件,通过该事件的detail.slideNumber参数可以获得当前显示项的索引(第一项索引为0,第二项为1,以此类推),利用该事件,可在显示内容切换时,动态处理一些业务逻辑。
如下为一个可拖动式选项卡示例,为提高页面加载速度,页面加载时,仅显示第一个选项卡的内容,第二、第三选项卡内容为空。
当切换到第二、第三个选项卡时,再动态获取相应内容进行显示:
var item2Show = false,item3Show = false;//子选项卡是否显示标志
document.querySelector('.mui-slider').addEventListener('slide', function(event) {
if (event.detail.slideNumber === 1&&!item2Show) {
//切换到第二个选项卡
//根据具体业务,动态获得第二个选项卡内容;
var content = ....
//显示内容
document.getElementById(&item2&).innerHTML = content;
//改变标志位,下次直接显示
item2Show = true;
} else if (event.detail.slideNumber === 2&&!item3Show) {
//切换到第三个选项卡
//根据具体业务,动态获得第三个选项卡内容;
var content = ....
//显示内容
document.getElementById(&item3&).innerHTML = content;
//改变标志位,下次直接显示
item3Show = true;
图片轮播、可拖动式图文表格等均可按照同样方式监听内容变化,比如我们可以在图片轮播界面显示当前正在看的是第几张图片:
document.querySelector('.mui-slider').addEventListener('slide', function(event) {
//注意slideNumber是从0开始的;
document.getElementById(&info&).innerText = &你正在看第&+(event.detail.slideNumber+1)+&张图片&;
问答社区话题讨论:
代码块激活字符:&&&&mslider
mui提供了开关控件,点击滑动两种手势都可以对开关控件进行操作,UI如下:
默认开关控件,带on/off文字提示,打开时为绿色背景,基本class类为.mui-switch、.mui-switch-handle,DOM结构如下:
&div class=&mui-switch&&
&div class=&mui-switch-handle&&&/div&
若希望开关默认为打开状态,只需要在.mui-switch节点上增加.mui-active类即可,如下:
&!-- 开关打开状态,多了一个.mui-active类 --&
&div class=&mui-switch mui-active&&
&div class=&mui-switch-handle&&&/div&
若希望隐藏on/off文字提示,变成简洁模式,需要在.mui-switch节点上增加.mui-switch-mini类,如下:
&!-- 简洁模式开关关闭状态 --&
&div class=&mui-switch mui-switch-mini&&
&div class=&mui-switch-handle&&&/div&
&!-- 简洁模式开关打开状态 --&
&div class=&mui-switch mui-switch-mini mui-active&&
&div class=&mui-switch-handle&&&/div&
mui默认还提供了蓝色开关控件,只需在.mui-switch节点上增加.mui-switch-blue类即可,如下:
&!-- 蓝色开关关闭状态 --&
&div class=&mui-switch mui-switch-blue&&
&div class=&mui-switch-handle&&&/div&
&!-- 蓝色开关打开状态 --&
&div class=&mui-switch mui-switch-blue mui-active&&
&div class=&mui-switch-handle&&&/div&
蓝色开关上增加.mui-switch-mini即可变成无文字的简洁模式
若要获得当前开关状态,可通过判断当前开关控件是否包含.mui-active类来实现,若包含,则为打开状态,否则即为关闭状态;如下为代码示例:
var isActive = document.getElementById(&mySwitch&).classList.contains(&mui-active&);
if(isActive){
console.log(&打开状态&);
console.log(&关闭状态&);
若使用js打开、关闭开关控件,可使用switch插件的toggle()方法,如下为示例代码:
mui(&#mySwitch&).switch().toggle();
开关控件在打开/关闭两种状态之间进行切换时,会触发toggle事件,通过事件的detail.isActive属性可以判断当前开关状态。可通过监听toggle事件,可以在开关切换时执行特定业务逻辑。如下为使用示例:
document.getElementById(&mySwitch&).addEventListener(&toggle&,function(event){
if(event.detail.isActive){
console.log(&你启动了开关&);
console.log(&你关闭了开关&);
mui在mui.init()中会自动初始化基本控件,但是
mui('.mui-switch')['switch']()
问答社区话题讨论:
代码块激活字符:&&&&mswitch}

我要回帖

更多关于 iphone6s升级后卡顿 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信