使用xpg xp运行游戏时弹出了bootstrap alert 弹出,说是脚本坏了,那么怎么解决啊

奇迹世界 为什么我从XP进游戏超级慢??我的配置很好,在游戏里玩的时候一点不卡_百度知道
奇迹世界 为什么我从XP进游戏超级慢??我的配置很好,在游戏里玩的时候一点不卡
我有更好的答案
一、软件篇 1、设定虚拟内存 硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般Windows预设的是由系统自行管理虚拟内存,它会因应不同程序所需而自动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担,令系统运作变慢!有见及此,用户最好自定虚拟内存的最小值和最大值,避免经常变换大小。要设定虚拟内存,在“我的电脑”上按右键选择“属性”,在“高级”选项里的“效能”的对话框中,对“虚拟内存”进行设置。 3、检查应用软件或者驱动程序 有些程序在电脑系统启动会时使系统变慢。如果要是否是这方面的原因,我们可以从“安全模式”启动。因为这是原始启动,“安全模式”运行的要比正常运行时要慢。但是,如果你用“安全模式”启动发现电脑启动速度比正常启动时速度要快,那可能某个程序是导致系统启动速度变慢的原因。 4、桌面图标太多会惹祸 桌面上有太多图标也会降低系统启动速度。Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多,所花费的时间当然就越多。同时有些杀毒软件提供了系统启动扫描功能,这将会耗费非常多的时间,其实如果你已经打开了杀毒软件的实时监视功能,那么启动时扫描系统就显得有些多余,还是将这项功能禁止吧! 建议大家将不常用的桌面图标放到一个专门的文件夹中或者干脆删除! 5、ADSL导致的系统启动变慢 默认情况下Windows XP在启动时会对网卡等网络设备进行自检,如果发现网卡的IP地址等未配置好就会对其进行设置,这可能是导致系统启动变慢的真正原因。这时我们可以打开“本地连接”属性菜单,双击“常规”项中的“Internet协议”打开“TCP/IP属性”菜单。将网卡的IP地址配置为一个在公网(默认的网关是192.168.1.1)中尚未使用的数值如192.168.1.X,X取介于2~255之间的值,子网掩码设置为255.255.255.0,默认网关和DNS可取默认设置。 6、字体对速度的影响 虽然 微软 声称Windows操作系统可以安装种字体,但实际上当你安装的字体超过500 种时,就会出现问题,比如:字体从应用程序的字体列表中消失以及Windows的启动速度大幅下降。在此建议最好将用不到或者不常用的字体删除,为避免删除后发生意外,可先进行必要的备份。 7、删除随机启动程序 何谓随机启动程序呢?随机启动程序就是在开机时加载的程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、popkiller 之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。 8、取消背景和关闭activedesktop 不知大家有否留意到,我们平时一直摆放在桌面上漂亮的背景,其实是很浪费计算机资源的!不但如此,而且还拖慢计算机在执行应用程序时的速度!本想美化桌面,但又拖慢计算机的速度,这样我们就需要不在使用背景了,方法是:在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,选“无”,在“外观”的对话框中,在桌面预设的青绿色,改为黑色......至于关闭activedesktop,即是叫你关闭从桌面上的web画面,例如在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,有一幅背景,名为Windows XX,那副就是web画面了!所以如何系统配置不高就不要开启。 10、把Windows变得更苗条 与DOS系统相比,Windows过于庞大,而且随着你每天的操作,安装新软件、加载运行库、添加新游戏等等使得它变得更加庞大,而更为重要的是变大的不仅仅是它的目录,还有它的 注册表 和运行库。因为即使删除了某个程序,可是它使用的DLL文件仍然会存在,因而随着使用日久,Windows的启动和退出时需要加载的DLL动态链接库文件越来越大,自然系统运行速度也就越来越慢了。这时我们就需要使用一些彻底删除DLL的程序,它们可以使Windows恢复苗条的身材。建议极品玩家们最好每隔两个月就重新安装一遍Windows,这很有效。 11、更改系统开机时间 虽然你已知道了如何新增和删除一些随机启动程序,但你又知不知道,在开机至到进入Windows的那段时间,计算机在做着什么呢?又或者是,执行着什么程序呢?那些程序,必定要全部载完才开始进入Windows,你有否想过,如果可删除一些不必要的开机时的程序,开机时的速度会否加快呢?答案是会的!想要修改,可按&开始&,选&执行&,然后键入win.ini,开启后,可以把以下各段落的内容删除,是删内容,千万不要连标题也删除!它们包括:[compatibility]、[compatibility32]、[imecompatibility]、[compatibility95]、[modulecompatibility]和[embedding]。 二、硬件篇 1、Windows系统自行关闭硬盘DMA模式 硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出来了!一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作用。但是你知道吗?Windows 2000、XP、2003系统有时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!这就造成在使用以上系统中硬盘性能突然下降,其中最明显的现象有:系统起动速度明显变慢,一般来说正常Windows XP系统启动时那个由左向右运动的滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一些大的软件时CPU占用率时常达到100%而产生停顿,玩一些大型3D游戏时画面时有明显停顿,出现以上问题时大家最好看看自己硬盘的DMA模式是不是被Windows 系统自行关闭了。查看自己的系统是否打开DMA模式: a. 双击“管理工具”,然后双击“计算机管理”; b. 单击“系统工具”,然后单击“设备管理器”; c. 展开“IDE ATA/ATAPI 控制器”节点; d. 双击您的“主要IDE控制器”; 2、CPU 和风扇是否正常运转并足够制冷 当CPU风扇转速变慢时,CPU本身的温度就会升高,为了保护CPU的安全,CPU就会自动降低运行频率,从而导致计算机运行速度变慢。有两个方法检测CPU的温度。你可以用“手指测法”用手指试一下处理器的温度是否烫手,但是要注意的是采用这种方法必须先拔掉电源插头,然后接一根接地线来防止身上带的静电击穿CPU以至损坏。另一个比较科学的方法是用带感温器的万用表来检测处理器的温度。 因为处理器的种类和型号不同,合理温度也各不相同。但是总的来说,温度应该低于 110 度。如果你发现处理器的测试高于这处温度,检查一下机箱内的风扇是否正常运转。 3、USB和扫描仪造成的影响 由于Windows 启动时会对各个驱动器(包括光驱)进行检测,因此如果光驱中放置了光盘,也会延长电脑的启动时间。所以如果电脑安装了扫描仪等设备,或在启动时已经连接了USB硬盘,那么不妨试试先将它们断开,看看启动速度是不是有变化。一般来说,由于USB接口速度较慢,因此相应设备会对电脑启动速度有较明显的影响,应该尽量在启动后再连接USB设备。如果没有USB设备,那么建议直接在BIOS设置中将USB功能关闭。 4、是否使用了磁盘压缩 因为“磁盘压缩”可能会使电脑性能急剧下降,造成系统速度的变慢。所以这时你应该检测一下是否使用了“磁盘压缩”,具体操作是在“我的电脑”上点击鼠标右键,从弹出的菜单选择“属性”选项,来检查驱动器的属性。 5、网卡造成的影响 只要设置不当,网卡也会明显影响系统启动速度,你的电脑如果连接在局域网内,安装好网卡驱动程序后,默认情况下系统会自动通过DHCP来获得IP地址,但大多数公司的局域网并没有DHCP服务器,因此如果用户设置成“自动获得IP地址”,系统在启动时就会不断在网络中搜索DHCP 服务器,直到获得IP 地址或超时,自然就影响了启动时间,因此局域网用户最好为自己的电脑指定固定IP地址。 6、文件夹和打印机共享 安装了Windows XP专业版的电脑也会出现启动非常慢的时候,有些时候系统似乎给人死机的感觉,登录系统后,桌面也不出现,电脑就像停止反应,1分钟后才能正常使用。这是由于使用了Bootvis.exe 程序后,其中的Mrxsmb.dll文件为电脑启动添加了67秒的时间! 要解决这个问题,只要停止共享文件夹和打印机即可:选择“开始→设置→网络和拨号连接”,右击“本地连接”,选择“属性”,在打开的窗口中取消“此连接使用下列选定的组件”下的“ Microsoft 网络的文件和打印机共享”前的复选框,重启电脑即可。 7、系统配件配置不当 一些用户在组装机器时往往忽略一些小东西,从而造成计算机整体配件搭配不当,存在着速度上的瓶颈。比如有些朋友选的CPU档次很高,可声卡等却买了普通的便宜货,其实这样做往往是得不偿失。因为这样一来计算机在运行游戏、播放影碟时由于声卡占用CPU资源较高且其数据传输速度较慢,或者其根本无硬件解码而需要采用软件解码方式,常常会引起声音的停顿,甚至导致程序的运行断断续续。又如有些朋友的机器是升了级的,过去老机器上的一些部件如内存条舍不得抛弃,装在新机器上照用,可是由于老内存的速度限制,往往使新机器必须降低速度来迁就它,从而降低了整机的性能,极大地影响了整体的运行速度。 9、断开不用的网络驱动器 为了消除或减少 Windows 必须重新建立的网络连接数目,建议将一些不需要使用的网络驱动器断开,也就是进入“我的电脑”,右击已经建立映射的网络驱动器,选择“断开”即可。 10、缺少足够的内存 Windows操作系统所带来的优点之一就是多线性、多任务,系统可以利用CPU来进行分时操作,以便你同时做许多事情。但事情有利自然有弊,多任务操作也会对你的机器提出更高的要求。朋友们都知道即使是一个最常用的WORD软件也要求最好有16MB左右的内存,而运行如3D MAX等大型软件时,64MB的内存也不够用。所以此时系统就会自动采用硬盘空间来虚拟主内存,用于运行程序和储存交换文件以及各种临时文件。由于硬盘是机械结构,而内存是电子结构,它们两者之间的速度相差好几个数量级,因而使用硬盘来虚拟主内存将导致程序运行的速度大幅度降低。 11、硬盘空间不足 使用Windows系统平台的缺点之一就是对文件的管理不清楚,你有时根本就不知道这个文件对系统是否有用,因而Windows目录下的文件数目越来越多,容量也越来越庞大,加之现在的软件都喜欢越做越大,再加上一些系统产生的临时文件、交换文件,所有这些都会使得硬盘可用空间变小。当硬盘的可用空间小到一定程度时,就会造成系统的交换文件、临时文件缺乏可用空间,降低了系统的运行效率。更为重要的是由于我们平时频繁在硬盘上储存、删除各种软件,使得硬盘的可用空间变得支离破碎,因此系统在存储文件时常常没有按连续的顺序存放,这将导致系统存储和读取文件时频繁移动磁头,极大地降低了系统的运行速度。 12、硬盘分区太多也有错 如果你的Windows 2000没有升级到SP3或SP4,并且定义了太多的分区,那么也会使启动变得很漫长,甚至挂起。所以建议升级最新的SP4,同时最好不要为硬盘分太多的区。因为Windows 在启动时必须装载每个分区,随着分区数量的增多,完成此操作的时间总量也会不断增长。 三、病毒篇 如果你的计算机感染了病毒,那么系统的运行速度会大幅度变慢。病毒入侵后,首先占领内存这个据点,然后便以此为根据地在内存中开始漫无休止地复制自己,随着它越来越庞大,很快就占用了系统大量的内存,导致正常程序运行时因缺少主内存而变慢,甚至不能启动;同时病毒程序会迫使CPU转而执行无用的垃圾程序,使得系统始终处于忙碌状态,从而影响了正常程序的运行,导致计算机速度变慢。下面我们就介绍几种能使系统变慢的病毒。 1、使系统变慢的bride病毒 病毒类型:黑客程序 发作时间:随机 传播方式:网络 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 2000、Windows XP等操作系统环境下正常运行。运行时会自动连接网站,如果无法连接到此网站,则病毒会休眠几分钟,然后修改注册表将自己加入注册表自启动项,病毒会释放出四个病毒体和一个有漏洞的病毒邮件并通过邮件系统向外乱发邮件,病毒还会释放出FUNLOVE病毒感染局域网计算机,最后病毒还会杀掉已知的几十家反病毒软件,使这些反病毒软件失效。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒。 ·病毒运行后会自动连接网站。 ·病毒会释放出Bride.exe,Msconfig.exe,Regedit.exe三个文件到系统目录;释放出:Help.eml, Explorer.exe文件到桌面。 ·病毒会在注册表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun项中加入病毒Regedit.exe的路径。 ·病毒运行时会释放出一个FUNLOVE病毒并将之执行,而FUNLOVE病毒会在计算机中大量繁殖,造成系统变慢,网络阻塞。 ·病毒会寻找计算机中的邮件地址,然后按照地址向外大量发送标题为:&被感染的计算机机名&(例:如果用户的计算机名为:张冬, 则病毒邮件的标题为:张冬)的病毒邮件。 ·病毒还会杀掉几十家国外著名的反病毒软件。 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了Bride(Worm.bride)病毒,请用户立刻用手中的杀毒软件进行清除。 2、使系统变慢的阿芙伦病毒 病毒类型:蠕虫病毒 发作时间:随机 传播方式:网络/文件 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 9X、Windows NT、Windows 2000、Windows XP等操作系统环境下正常运行。病毒运行时将自己复到到TEMP、SYSTEM、RECYCLED目录下,并随机生成文件名。该病毒运行后,会使消耗大量的系统资源,使系统明显变慢,并且杀掉一些正在运行的反病毒软件,建立四个线程在局域网中疯狂传播。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒: ·病毒运行时会将自己复到到TEMP、SYSTEM、RECYCLED目录下,文件名随机 ·病毒运行时会使系统明显变慢 ·病毒会杀掉一些正在运行的反病毒软件 ·病毒会修改注册表的自启动项进行自启动 ·病毒会建立四个线程在局域网中传播 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了“阿芙伦(Worm.Avron)”病毒,由于此病毒没有固定的病毒文件名,所以,最好还是选用杀毒软件进行清除。 3、恶性蠕虫 震荡波 病毒名称: Worm.Sasser 中文名称: 震荡波 病毒别名: W32/Sasser.worm [Mcafee] 病毒类型: 蠕虫 受影响系统:WinNT/Win2000/WinXP/Win2003 病毒感染症状: ·莫名其妙地死机或重新启动计算机; ·系统速度极慢,cpu占用100%; ·网络变慢; ·最重要的是,任务管理器里有一个叫&avserve.exe&的进程在运行! 破坏方式: ·利用WINDOWS平台的 Lsass 漏洞进行广泛传播,开启上百个线程不停攻击其它网上其它系统,堵塞网络。病毒的攻击行为可让系统不停的倒计时重启。 ·和最近出现的大部分蠕虫病毒不同,该病毒并不通过邮件传播,而是通过命令易受感染的机器 下载特定文件并运行,来达到感染的目的。 ·文件名为:avserve.exe 解决方案: ·请升级您的操作系统,免受攻击 ·请打开个人防火墙屏蔽端口:445、,防止名为avserve.exe的程序访问网络 ·手工解决方案: 首先,若系统为WinMe/WinXP,则请先关闭系统还原功能; 步骤一,使用进程程序管理器结束病毒进程 右键单击任务栏,弹出菜单,选择“任务管理器”,调出“Windows任务管理器”窗口。在任务管理器中,单击“进程”标签,在例表栏内找到病毒进程“avserve.exe”,单击“结束进程按钮”,点击“是”,结束病毒进程,然后关闭“Windows任务管理器”; 步骤二,查找并删除病毒程序 通过“我的电脑”或“资源管理器”进入 系统安装目录(Winnt或windows),找到文件“avser ve.exe”,将它删除;然后进入系统目录(Winntsystem32或windowssystem32),找 到文件&*_up.exe&, 将它们删除; 步骤三,清除病毒在注册表里添加的项 打开注册表编辑器: 点击开始——&运行, 输入REGEDIT, 按Enter; 在左边的面板中, 双击(按箭头顺序查找,找到后双击): HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun 在右边的面板中, 找到并删除如下项目:&avserve.exe& = %SystemRoot%avserve.exe 关闭注册表编辑器。 第二部份 系统加速 一、Windows 98 1、不要加载太多随机启动程序 不要在开机时载入太多不必要的随机启动程序。选择“开始→程序→附件→系统工具→系统信息→系统信息对话框”,然后,选择“工具→系统配置实用程序→启动”,只需要internat.exe前打上钩,其他项都可以不需要,选中后确定重起即可。 2、转换系统文件格式 将硬盘由FAT16转为FAT32。 3、不要轻易使用背景 不要使用ActiveDesktop,否则系统运行速度会因此减慢(右击屏幕→寻显示器属性→Web标签→将其中关于“活动桌面”和“频道”的选项全部取消)。 4、设置虚拟内存 自己设定虚拟内存为机器内存的3倍,例如:有32M的内存就设虚拟内存为96M,且最大值和最小值都一样(此设定可通过“控制面板→系统→性能→虚拟内存”来设置)。 5、一些优化设置 a、到控制面板中,选择“系统→性能→ 文件系统”。将硬盘标签的“计算机主要用途”改为网络服务器,“预读式优化&调到全速。 b、将“软盘”标签中“每次启动就搜寻新的软驱”取消。 c、CD-ROM中的“追加高速缓存”调至最大,访问方式选四倍速或更快的CD-ROM。 6、定期对系统进行整理 定期使用下列工具:磁盘扫描、磁盘清理、碎片整理、系统文件检查器(ASD)、Dr?Watson等。 二、Windows 2000 1、升级文件系统 a、如果你所用的操作系统是win 9x与win 2000双重启动的话,建议文件系统格式都用FAT32格式,这样一来可以节省硬盘空间,二来也可以9x与2000之间能实行资源共享。 提醒:要实现这样的双重启动,最好是先在纯DOS环境下安装完9x在C区,再在9x中或者用win 2000启动盘启动在DOS环境下安装2000在另一个区内,并且此区起码要有800M的空间以上 b、如果阁下只使用win 2000的话,建议将文件系统格式转化为NTFS格式,这样一来可节省硬盘空间,二来稳定性和运转速度更高,并且此文件系统格式有很好的纠错性;但这样一来,DOS和win 9x系统就不能在这文件系统格式中运行,这也是上面所说做双启动最好要用FAT32格式才能保证资源共享的原因。而且,某些应用程序也不能在此文件系统格式中运行,大多是DOS下的游戏类。 提醒:在win 2000下将文件系统升级为NTFS格式的方法是,点击“开始-程序-附件”选中“命令提示符”,然后在打开的提示符窗口输入&convert drive_letter:/fs:ntfs&,其中的&drive&是你所要升级的硬盘分区符号,如C区;还需要说明的是,升级文件系统,不会破坏所升级硬盘分区里的文件,无需要备份。 · 再运行“添加-删除程序”,就会看见多出了个“添加/删除 Windows 组件”的选项; b、打开“文件夹选项”,在“查看”标签里选中“显示所有文件和文件夹”,此时在你安装win 2000下的区盘根目录下会出现Autoexec.bat和Config.sys两个文件,事实上这两个文件里面根本没有任何内容,可以将它们安全删除。 c、右击“我的电脑”,选中“管理”,在点“服务和应用程序”下的“服务”选项,会看见win 2000上加载的各个程序组见,其中有许多是关于局域网设置或其它一些功能的,你完全可以将你不使用的程序禁用; 如:Alertr,如果你不是处于局域网中,完全可以它设置为禁用;还有Fax Service,不发传真的设置成禁用;Print Spooler,没有打印机的设置成制用;Uninterruptible power Supply,没有UPS的也设置成禁用,这些加载程序你自己可以根据自己实际情况进行设置。 各个加载程序后面都有说明,以及运行状态;选中了要禁用的程序,右击它,选“属性”,然后单击停止,并将“启动类型”设置为“手动”或者“已禁用”就行了 d、关掉调试器Dr. Watson; 运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十兆的空间。这是出错程序的现场,对我们没用。另外蓝屏时出现的memory.dmp也可删掉。可在我的电脑/属性中关掉启动慢一般有以下几个原因: 1,C盘比较大 2,需要检测的硬件多 3,启动的软件多 4,一些设置问题
采纳率:12%
启动项目太多,建议把迅雷什么的退出先
现在客户端也有问题,要不你下个新的显卡驱动试试
启动项目太多,建议把迅雷什么的退出先
防火墙. 杀毒软件
他会造成游戏时间延时什么的
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
奇迹世界的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。IOS风格的精美组件.
页面基本结构
我们对页面的基本结构是有要求的,否则可能会出现样式错误或者无法正确加载页面等问题。
基本的页面布局如下:
&!-- page集合的容器,里面放多个平行的.page,其他.page作为内联页面由路由控制展示 --&
&div class="page-group"&
&!-- 单个page ,第一个.page默认被展示--&
&div class="page"&
&!-- 标题栏 --&
&header class="bar bar-nav"&
&a class="icon icon-me pull-left open-panel"&&/a&
&h1 class="title"&标题&/h1&
&!-- 工具栏 --&
&nav class="bar bar-tab"&
&a class="tab-item external active" href="#"&
&span class="icon icon-home"&&/span&
&span class="tab-label"&首页&/span&
&a class="tab-item external" href="#"&
&span class="icon icon-star"&&/span&
&span class="tab-label"&收藏&/span&
&a class="tab-item external" href="#"&
&span class="icon icon-settings"&&/span&
&span class="tab-label"&设置&/span&
&!-- 这里是页面内容区 --&
&div class="content"&
&div class="content-block"&这里是content&/div&
&!-- 其他的单个page内联页(如果有) --&
&div class="page"&...&/div&
&!-- popup, panel 等放在这里 --&
&div class="panel-overlay"&&/div&
&!-- Left Panel with Reveal effect --&
&div class="panel panel-left panel-reveal"&
&div class="content-block"&
&p&这是一个侧栏&/p&
&!-- Click on link with "close-panel" class will close panel --&
&p&&a href="#" class="close-panel"&关闭&/a&&/p&
&!-- 默认必须要执行$.init(),实际业务里一般不会在HTML文档里执行,通常是在业务页面代码的最后执行 --&
&script&$.init()&/script&
rem 是相对于 html 元素的 font-size 的一个单位。如果 html 上定义了 font-size: 20,则无论在任何地方都是 1rem = 20px 这个大小不会受到父元素的影响。
我们统一使用rem对页面进行整体缩放。强烈建议大家对需要适应页面大小的任何元素都使用 rem 为单位来定义。
我们在 iphone6 上使用 1rem = 20px 来换算。小于 375px 的设备上不做缩小处理,对 大于 375px 宽度的设备进行等比缩放。
关于 rem 可以参考
注意,必须执行初始化方法: $.init()。他会调用 $.initPage 方法初始化页面组件,并且触发一个 pageInit 事件,所以请确保在所有的 pageInit 事件绑定之后再调用 $.init() 方法。
如果设置了 $.config.autoInit =,那么在 document.onload的时候就会执行 $.init方法,从而触发 pageInit事件,如果在这之后监听了 pageInit 事件是无法被执行的。强烈建议不要设置为true,而是在绑定完所有的 pageInit 事件之后,再调用 $.init方法
关于如何初始化,可以参考
我们提供了一些全局配置,可以在初始化之前通过这些配置改变一些默认行为。
在引入JS之前通过一个 $.config 变量来改变默认配置:
//打开自动初始化页面的功能
//建议不要打开自动初始化,而是自己调用 $.init 方法完成初始化
$.config = {
autoInit: true
&script src='sm.min.js'&&/script&
所有配置项如下:
在 document.onload 之后自动调用 $.init 方法。如果你的页面内容是异步加载的,应该关闭这个配置,并且在加载完成之后手动调用 $.init
默认启用MSUI内置的Router功能。如果想关闭此功能,在页面加载MSUI之前配置$.config.router = false 即可。
routerFilter
当前点击链接是否使用路由功能的自定义过滤器。这是一个函数,实参是当前点击的链接的 Zepto 对象(即 $('the-link')),返回 false 表示不使用路由功能,返回 true 表示进入路由功能后续处理。
showPageLoadingIndicator
在加载新页面过程中显示一个加载指示器。
swipePanel
是否可以通过左右滑动打开侧栏,一次只能指定一个方向。
swipePanelOnlyClose
只允许滑动关闭侧栏,不允许滑动打开。
如果你希望页面内容所有两边有间距,可以把内容放在 .content-padded 容器中
我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白
&div class="content-padded"&
&p&我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白,我的左右两边有留白&/p&
Router默认开启,会自动拦截所有链接的Touch行为,如果希望一个链接走浏览器原生跳转而不使用router,可以在链接上增加 class="external" 或者自定义属性,如 &a href="xxx" external&xxx&/a&.
如果需要禁用路由功能,那么可以在 zepto 之后, msui 之前使用 script $.config = {router: false} 来禁用.
如只需禁用部分链接,除了使用external外,还可用自定义动态过滤器 $.config.routerFilter = function($link) {},实参 $link 是当前点击的链接,返回 false 表示不使用路由功能,返回 true 表示进入路由处理,参考,示例如下:
$.config = {
// 路由功能开关过滤器,返回 false 表示当前点击链接不使用路由
routerFilter: function($link) {
// 某个区域的 a 链接不想使用路由功能
if ($link.is('.disable-router a')) {
return false;
return true;
路由功能前提
如果需要使用路由功能,那么页面代码结构上需要满足下面两个条件:
和之前相比的差异:每个 url 对应的 html 文档, 所有的展示内容都必须放在 div.page-group 里。 形式可以参考
html 文档中, 每个可以用来切换显示的块都应该有 page 的 class
也就是说,每个 html 页面的基本结构都应该是下面这样(示例中省略 body 等):
&div class="page-group"&
&div class="page"&...&/div&
&div class="page"&...&/div&
&!-- 如果有 popup --&
&div class="popup popup-about"&...&/div&
你可以在同一个HTML文件中内联编写多个页面。每一个页面都是一个 .page 容器,如果有多个页面,则需要用 .page-current 标记出第一次进入的时候应该显示的页面。
每一个 .page 容器都应该有一个全局唯一的id,路由器会使用这个id作为唯一标示,如果没有设置id,可能会导致路由出错。你只需要这样写一个链接就可以跳转到id对应的内联页面 &a href='#{page-id}'&跳转&/a&.
&div class="page page-current" id='router'&
&header class="bar bar-nav"&
&h1 class='title'&路由&/h1&
&div class="content"&
&div class="content-block"&
&li&&a href="/docs-demos/router2"&ajax加载新页面&/a&&/li&
&li&&a href="#router3"&内联的新页面&/a&&/li&
&div class="page" id='router3'&
&header class="bar bar-nav"&
&a class="button button-link button-nav pull-left back" href="/docs-demos/router"&
&span class="icon icon-left"&&/span&
&h1 class='title'&路由&/h1&
&div class="content"&
&div class="content-block"&
这是内联编写的页面,点击左上角的 &a href="#" class='back'&返回&/a& 按钮返回上一页。
注意: ajax 和 pushState 限制了 ajax 加载的页面只能是同域.
除了内联编写多个页面以外,你还可以通过ajax来加载新页面。通过ajax加载新页面和普通的链接写法没有区别,路由器会自动拦截链接的点击事件,并通过ajax请求加载新的页面。
&!-- page 1 --&
&div class="page page-current" id='router'&
&header class="bar bar-nav"&
&h1 class='title'&路由&/h1&
&div class="content"&
&div class="content-block"&
&li&&a href="/docs-demos/router2"&ajax加载新页面&/a&&/li&
&!-- page 2 --&
&div class="page" id='router2'&
&header class="bar bar-nav"&
&a class="button button-link button-nav pull-left back" href="/docs-demos/router"&
&span class="icon icon-left"&&/span&
&h1 class='title'&路由&/h1&
&div class="content"&
&div class="content-block"&
这是ajax 加载的新页面,点击左上角的 &a href="#" class='back'&返回&/a& 按钮返回上一页。
我们对后退操作进行了封装,你只需要在任意链接上增加一个 .back 类,点击就会自动返回到上一页(调用 history.back)。
或者你可以通过调用 $.router.back() 来执行返回上一页操作。
&a class="button button-link button-nav pull-left back" href="/docs-demos/router"&返回上一页&/a&
默认地,对于加载过的页面,只要页面没刷新,那么再次进入该页面时,都会优先读取缓存而不发送网络请求。如果需要强制请求,可以用下面两种方式:
在 a 链接上添加 data-no-cache="true" 属性来标明点击该链接时不使用缓存,如:&a href="/detail" data-no-cache="true">no cache&/a>
使用 js 方法 load 来加载时,把可选的参数 ignoreCache 设为 true,如:$.router.load('/detail', true)
你可以通过调用 $.router.load(url, ignoreCache) 来加载一个页面,参数url既可以是一个ajax页面的地址,也可以是一个内联页面的id.
$.router.load("/detail");
//加载ajax页面
$.router.load("#about");
//加载内联页面
// ignoreCache 是加载一个新页面时是否忽略缓存而发网络请求,默认是 false,表示使用缓存,可以设为 true 来忽略缓存
$.router.load('/detail', true);
从一个页面准备开始加载,到执行完加载动画,会按顺序触发以下事件:
pageLoadStart
发送Ajax之前触发
pageLoadCancel
取消了正在发送的ajax请求
pageLoadError
Ajax 请求失败
pageLoadComplete
Ajax 请求结束,无论是成功还是失败
pageAnimationStart
新页面的DOM插入当前页面之后,动画执行之前
pageAnimationEnd
新页面动画执行完毕
beforePageRemove
加载新的页面,动画切换完成后,移除旧的 document 前发送,事件回调函数参数是event, $pageContainer,其中$pageContainer 是 .page-group(注:在 window 上触发,且内联 page 的切换不会触发此事件)
pageRemoved
加载新的页面,动画切换完成后,移除旧的 document 后发送(注:在 window 上触发,且内联 page 的切换不会触发此事件)
beforePageSwitch
page 切换前触发,该事件在 pageAnimationStart 前,beforePageSwitch 之后会做一些额外的处理才触发 pageAnimationStart
新页面中的组件初始化完毕
其中 pageLoad* 事件是在 window 上触发,其他都是在 .page 元素上触发。为了性能考虑,最好通过 document 代理监听。如果是内联页面,则没有前面的四个 pageLoad* 事件。
你可以这样监听事件:
$(document).on("pageInit", "#page-index", function(e, pageId, $page) {});
&!--或者--&
$(document).on("pageInit", function(e, pageId, $page) {
if(pageId == "pageIndex") {}
基础文本样式.
这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落
&div class="content-padded"&
&h1&标题一&/h1&
&h2&标题二&/h2&
&h3&标题三&/h3&
&h4&标题四&/h4&
&h5&标题五&/h5&
&h6&标题六&/h6&
&p&这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落这是一个段落&/p&
标题栏放在页面顶部
&header class="bar bar-nav"&
&h1 class="title"&标题&/h1&
带按钮的标题栏
&header class="bar bar-nav"&
&button class="button pull-left"&
&button class="button pull-right"&
&h1 class="title"&标题&/h1&
带图标的标题栏
&header class="bar bar-nav"&
&a class="icon icon-left pull-left"&&/a&
&a class="icon icon-refresh pull-right"&&/a&
&h1 class="title"&标题&/h1&
带链接和图标
&header class="bar bar-nav"&
&button class="button button-link button-nav pull-left"&
&span class="icon icon-left"&&/span&
&button class="button button-link button-nav pull-right"&
&span class="icon icon-right"&&/span&
&h1 class="title"&标题&/h1&
&header class="bar bar-nav"&
&button class="button pull-left"&
&button class="button pull-right"&
&div class="buttons-row"&
&a href="#tab1" class="tab-link active button"&Tab 1&/a&
&a href="#tab2" class="tab-link button"&Tab 2&/a&
&a href="#tab3" class="tab-link button"&Tab 3&/a&
&nav class="bar bar-tab"&
&a class="tab-item external active" href="#"&
&span class="icon icon-home"&&/span&
&span class="tab-label"&文案&/span&
&a class="tab-item external" href="#"&
&span class="icon icon-me"&&/span&
&span class="tab-label"&文案&/span&
&span class="badge"&2&/span&
&a class="tab-item external" href="#"&
&span class="icon icon-star"&&/span&
&span class="tab-label"&文案&/span&
&a class="tab-item external" href="#"&
&span class="icon icon-cart"&&/span&
&span class="tab-label"&文案&/span&
&a class="tab-item external" href="#"&
&span class="icon icon-settings"&&/span&
&span class="tab-label"&文案&/span&
工具栏 (只有文案)
&nav class="bar bar-tab"&
&a class="tab-item external active" href="#"&
&a class="tab-item external" href="#"&
&a class="tab-item external" href="#"&
二级标题栏
&nav class="bar bar-nav bar-standard"&
&h1 class="title"&多级标题栏和工具栏&/h1&
&!-- Block button in standard bar fixed below top bar --&
&div class="bar bar-header-secondary"&
&button class="button button-block"&Block level button&/button&
&!-- Block button in standard bar fixed above the footer --&
&div class="bar bar-footer-secondary"&
&button class="button button-block"&Block level button&/button&
&!-- Icons in standard bar fixed to the bottom of the screen --&
&div class="bar bar-footer"&
&a class="icon icon-edit pull-left"&&/a&
&a class="icon icon-settings pull-right"&&/a&
&header class="bar bar-nav"&
&h1 class='title'&按钮&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="button"&Usual Button 1&/a&&/p&
&p&&a href="#" class="button button-light"&light button&/a&&/p&
&p&&a href="#" class="button button-dark"&dark button&/a&&/p&
&p&&a href="#" class="button button-success"&success button&/a&&/p&
&p&&a href="#" class="button button-danger"&danger button&/a&&/p&
&p&&a href="#" class="button button-warning"&warning button&/a&&/p&
&p&&a href="#" class="button disabled"&disabled button&/a&&/p&
&div class="content-block"&
&p&&a href="#" class="button button-round"&Round Button 1&/a&&/p&
&div class="content-block"&
&p&&a href="#" class="button button-big"&Big Button &/a&&/p&
&p&&a href="#" class="button button-big button-round"&Big Round Button &/a&&/p&
&header class="bar bar-nav"&
&h1 class='title'&按钮组&/h1&
&div class="content"&
&div class="content-block"&
&p class="buttons-row"&&a href="#" class="button"&Button 1&/a&&a href="#" class="button"&Button 2&/a&&a href="#" class="button"&Button 3&/a&&/p&
&p class="buttons-row"&&a href="#" class="button active"&Button 1&/a&&a href="#" class="button"&Button 2&/a&&a href="#" class="button"&Button 3&/a&&/p&
&p class="buttons-row"&&a href="#" class="button"&Button 1&/a&&a href="#" class="button active"&Button 2&/a&&a href="#" class="button"&Button 3&/a&&/p&
&p class="buttons-row"&&a href="#" class="button button-round"&Button 1&/a&&a href="#" class="button button-round"&Button 2&/a&&/p&
&p class="buttons-row"&&a href="#" class="button button-round"&Button 1&/a&&a href="#" class="button button-round active"&Button 2&/a&&/p&
&header class="bar bar-nav"&
&h1 class='title'&填充按钮&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="button button-fill"&Fill Button &/a&&/p&
&p&&a href="#" class="button button-fill button-success"&Fill Button &/a&&/p&
&p&&a href="#" class="button button-fill button-danger"&Fill Button &/a&&/p&
&p&&a href="#" class="button button-fill button-warning"&Fill Button &/a&&/p&
使用列表和栅格
使用列表和栅格来进行按钮布局
List block buttons
Inset list block buttons
Using Grid
&header class="bar bar-nav"&
&h1 class='title'&列表和栅格布局按钮&/h1&
&div class="content"&
&div class="content-block-title"&List block buttons&/div&
&div class="list-block"&
&li&&a href="#" class="item-link list-button"&List Button 1&/a&&/li&
&li&&a href="#" class="item-link list-button"&List Button 2&/a&&/li&
&li&&a href="#" class="item-link list-button"&List Button 3&/a&&/li&
&div class="content-block-title"&Inset list block buttons&/div&
&div class="list-block inset"&
&li&&a href="#" class="item-link list-button"&List Button 1&/a&&/li&
&li&&a href="#" class="item-link list-button"&List Button 2&/a&&/li&
&li&&a href="#" class="item-link list-button"&List Button 3&/a&&/li&
&div class="content-block-title"&Using Grid&/div&
&div class="content-block"&
&div class="row"&
&div class="col-50"&&a href="#" class="button button-big button-fill button-danger"&Cancel&/a&&/div&
&div class="col-50"&&a href="#" class="button button-big button-fill button-success"&Submit&/a&&/div&
&header class="bar bar-nav"&
&h1 class='title'&表单&/h1&
&div class="content"&
&div class="list-block"&
&!-- Text inputs --&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-name"&&/i&&/div&
&div class="item-inner"&
&div class="item-title label"&姓名&/div&
&div class="item-input"&
&input type="text" placeholder="Your name"&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-email"&&/i&&/div&
&div class="item-inner"&
&div class="item-title label"&邮箱&/div&
&div class="item-input"&
&input type="email" placeholder="E-mail"&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-password"&&/i&&/div&
&div class="item-inner"&
&div class="item-title label"&密码&/div&
&div class="item-input"&
&input type="password" placeholder="Password" class=""&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-gender"&&/i&&/div&
&div class="item-inner"&
&div class="item-title label"&性别&/div&
&div class="item-input"&
&option&Male&/option&
&option&Female&/option&
&!-- Date --&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-calendar"&&/i&&/div&
&div class="item-inner"&
&div class="item-title label"&生日&/div&
&div class="item-input"&
&input type="date" placeholder="Birth day" value=""&
&!-- Switch (Checkbox) --&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-toggle"&&/i&&/div&
&div class="item-inner"&
&div class="item-title label"&开关&/div&
&div class="item-input"&
&label class="label-switch"&
&input type="checkbox"&
&div class="checkbox"&&/div&
&li class="align-top"&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-comment"&&/i&&/div&
&div class="item-inner"&
&div class="item-title label"&文本域&/div&
&div class="item-input"&
&textarea&&/textarea&
&div class="content-block"&
&div class="row"&
&div class="col-50"&&a href="#" class="button button-big button-fill button-danger"&取消&/a&&/div&
&div class="col-50"&&a href="#" class="button button-big button-fill button-success"&提交&/a&&/div&
只有图标的表单
只有图标的表单
&header class="bar bar-nav"&
&h1 class='title'&只有图标的表单&/h1&
&div class="content"&
&div class="list-block"&
&!-- Text inputs --&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-name"&&/i&&/div&
&div class="item-inner"&
&div class="item-input"&
&input type="text" placeholder="Your name"&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-email"&&/i&&/div&
&div class="item-inner"&
&div class="item-input"&
&input type="email" placeholder="E-mail"&
&!-- Select --&
&div class="item-content"&
&div class="item-media"&&i class="icon icon-form-gender"&&/i&&/div&
&div class="item-inner"&
&div class="item-input"&
&option&Male&/option&
&option&Female&/option&
只有文案的表单
只有文案的表单
&header class="bar bar-nav"&
&h1 class='title'&只有文案的表单&/h1&
&div class="content"&
&div class="list-block"&
&!-- Text inputs --&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title label"&Name&/div&
&div class="item-input"&
&input type="text" placeholder="Your name"&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title label"&E-mail&/div&
&div class="item-input"&
&input type="email" placeholder="E-mail"&
&!-- Select --&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title label"&Gender&/div&
&div class="item-input"&
&option&Male&/option&
&option&Female&/option&
可以从左侧或者右侧滑出的面板。
在任何元素上增加 .open-panel 类都可以使它能点击打开侧栏。如果有多个侧栏,你可以通过 data-panel='{panel的选择}'来指定具体打开哪一个侧栏
在任何元素上增加 .close-panel 类都可以使他点击关闭侧栏,因为侧栏只能同时打开一个,所以关闭的时候你不用指定是哪一个侧栏。
可以通过 .panel-left 或者 .panel-right 来指定侧栏是从左边还是右边出现。
可以通过 .panel-cover 或者 .panel-reveal 指定侧栏是覆盖在页面上还是推开页面。
默认配置下,侧栏可以通过滑动手势打开,但是不能通过滑动手势关闭。
你可以通过 $.config.swipePanel, $.config.swipePanelOnlyClose等参数来配置。具体配置请参见
&div class="page"&
&header class="bar bar-nav"&
&h1 class='title'&侧栏&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="button button-fill open-panel" data-panel='#panel-left-demo'&打开左侧栏&/a&&/p&
&div class="panel-overlay"&&/div&
&!-- Left Panel with Reveal effect --&
&div class="panel panel-left panel-reveal theme-dark" id='panel-left-demo'&
&div class="content-block"&
&p&这是一个侧栏&/p&
&p&你可以在这里放用户设置页面&/p&
&p&&a href="#" class="close-panel"&关闭&/a&&/p&
&div class="list-block"&
&!-- .... --&
&div class="panel panel-right panel-reveal"&
&div class="content-block"&
&p&这是一个侧栏&/p&
&!-- Click on link with "close-panel" class will close panel --&
&p&&a href="#" class="close-panel"&关闭&/a&&/p&
使用侧栏的时候请注意,务必用 .page 容器把 .bar 和 .content 包裹起来。
使用JS操作侧栏
除了使用 .open-panel 和 .close-panel之外。你可以直接调用 $.openPanel(panel) 和 $.closePanel() 来打开和关闭侧栏
$.openPanel(panel): 打开一个指定的panel, 其中 panel 是你需要打开的panel,可以是选择器或者DOM或者Zepto对象。如果没有传panel参数则会自动打开第一个panel。返回bool值表示是否打开成功。
$.closePanel(): 关闭打开的panel。返回bool值表示是否关闭成功。
&div class="page"&
&header class="bar bar-nav"&
&h1 class='title'&侧栏&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="button button-fill my-btn"&JS打开侧栏&/a&&/p&
&div class="panel-overlay"&&/div&
&!-- Left Panel with Reveal effect --&
&div class="panel panel-right panel-cover theme-dark" id='panel-js-demo'&
&div class="content-block"&
&p&我是从右边出现的&/p&
&p&并且我是覆盖在页面上而不是推开页面&/p&
&!-- Click on link with "close-panel" class will close panel --&
&p&&a href="#" class="close-panel"&关闭&/a&&/p&
&div class="panel panel-right panel-reveal"&
&div class="content-block"&
&p&这是一个侧栏&/p&
&!-- Click on link with "close-panel" class will close panel --&
&p&&a href="#" class="close-panel"&关闭&/a&&/p&
$(document).on("click", ".my-btn", function() {
$.openPanel("#panel-js-demo");
侧栏打开或者关闭的时候,会在 .panel 上触发对应的事件。
打开动画开始之前触发。
打开动画结束之后 触发。
关闭动画开始之前触发。
关闭动画结束之后 触发。
轻量级搜索栏
轻量级搜索栏适合放在页面内部,而不是固定在顶部。布局是通过栅格来实现的。所以可以非常灵活调整宽度以及组合任何你需要的组件。
&div class="content-padded"&
&div class="searchbar"&
&div class="search-input"&
&label class="icon icon-search" for="search"&&/label&
&input type="search" id='search' placeholder='输入关键字...'/&
&div class="searchbar row"&
&div class="search-input col-80"&
&label class="icon icon-search" for="search"&&/label&
&input type="search" id='search' placeholder='输入关键字...'/&
&a class="button button-fill button-primary col-20"&搜索&/a&
&div class="searchbar row"&
&div class="search-input col-85"&
&input type="search" id='search' placeholder='输入关键字...'/&
&a class="button button-fill button-primary col-15"&&span class="icon icon-search"&&/span&&/a&
一级标签页
This is tab 1 content
This is tab 2 content
This is tab 3 content
&header class="bar bar-nav"&
&h1 class='title'&标签页&/h1&
&div class="content"&
&div class="buttons-tab"&
&a href="#tab1" class="tab-link active button"&全部&/a&
&a href="#tab2" class="tab-link button"&待付款&/a&
&a href="#tab3" class="tab-link button"&待发货&/a&
&div class="content-block"&
&div class="tabs"&
&div id="tab1" class="tab active"&
&div class="content-block"&
&p&This is tab 1 content&/p&
&div id="tab2" class="tab"&
&div class="content-block"&
&p&This is tab 2 content&/p&
&div id="tab3" class="tab"&
&div class="content-block"&
&p&This is tab 3 content&/p&
二级标签页
比一级标签页更轻量的标签页
This is tab 1 content
This is tab 2 content
This is tab 3 content
&header class="bar bar-nav"&
&h1 class='title'&标签页&/h1&
&div class="content"&
&div class="content-block"&
&div class="buttons-row"&
&a href="#tab1" class="tab-link active button"&Tab 1&/a&
&a href="#tab2" class="tab-link button"&Tab 2&/a&
&a href="#tab3" class="tab-link button"&Tab 3&/a&
&div class="tabs"&
&div id="tab1" class="tab active"&
&div class="content-block"&
&p&This is tab 1 content&/p&
&div id="tab2" class="tab"&
&div class="content-block"&
&p&This is tab 2 content&/p&
&div id="tab3" class="tab"&
&div class="content-block"&
&p&This is tab 3 content&/p&
fixed标签页
标签页滚动到顶部后固定在顶部,可以通过添加“fixed-tab”,如:
class="buttons-tab fixed-tab"
自动初始化调用fixedTab组件
固定位置的top默认值为0,可以通过在"fixed-tab"元素上添加data-offset="44"来调整高度
也可以直接调用js方法来手动初始化
$(document).on("pageInit", function() {
$('.buttons-tab').fixedTab({offset:44});
html标签初始化
&div class="content"&
&p&其他内容区域&/p&
&p&其他内容区域&/p&
&p&其他内容区域&/p&
&p&其他内容区域&/p&
&p&其他内容区域&/p&
&div class="buttons-tab fixed-tab" data-offset="44"&
&a href="#tab1" class="tab-link active button"&全部&/a&
&a href="#tab2" class="tab-link button"&待付款&/a&
&a href="#tab3" class="tab-link button"&待发货&/a&
&div class="tabs"&
&div id="tab1" class="tab active"&
&div class="content-block"&
&div class="buttons-row"&
&a href="#tab1-1" class="tab-link active button"&Tab 1&/a&
&a href="#tab1-2" class="tab-link button"&Tab 2&/a&
&a href="#tab1-3" class="tab-link button"&Tab 3&/a&
&div class="tabs"&
&p class='tab active' id='tab1-1' style="height:600px"&This is tab 1-1 content&/p&
&p class='tab' id='tab1-2'&This is tab 1-2 content&/p&
&p class='tab' id='tab1-3'&&/p&
&div id="tab2" class="tab"&
&div class="content-block"&
&p style="height:600px"&This is tab 2 content start&/p&
&p &This is tab 2 content end&/p&
&div id="tab3" class="tab"&
&div class="content-block"&
&p style="height:600px"&This is tab 3 content start&/p&
&p &This is tab 3 content end&/p&
响应式栅格
&header class="bar bar-nav"&
&h1 class='title'&栅格&/h1&
&div class="content"&
&div class="content-padded grid-demo"&
&div class="row"&
&div class="col-50"&50%&/div&
&div class="col-50"&50%&/div&
&div class="row"&
&div class="col-33"&33%&/div&
&div class="col-33"&33%&/div&
&div class="col-33"&33%&/div&
&div class="row"&
&div class="col-20"&20%&/div&
&div class="col-80"&80%&/div&
&h2&无间距&/h2&
&div class="row no-gutter"&
&div class="col-20"&20%&/div&
&div class="col-80"&80%&/div&
Modal 是从App的主要内容区域上弹出的一小块内容块,是“临时视图”的一部分。
多个Modal类组件(包括toast)同时被呼起时,会按先后顺序被缓存在队列中,前一个modal关闭后,下一个modal才会打开
Modals 可以只用JavaScript打开。所以让我们来看看使用modals的相关APP方法
首先,让我们看看已经预定义的最常用的modal:
我们需要调用以下任一一种App方法来打开Alert modal :$.alert(text, [title, callbackOk]) 或者 $.alert(text, [callbackOk])
text - string. Alert文本
title - string. Optional. Alert modal 标题
callbackOk
- function. Optional.在Alert modal下,当用户点击“Ok”按钮时,回调函数将被执行。
该方法返回动态创建的modal的HTML元素。
&header class="bar bar-nav"&
&h1 class="title"&Alert&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="alert-text"&Alert With Text&/a&&/p&
&p&&a href="#" class="alert-text-title"&Alert With Text and Title&/a&&/p&
&p&&a href="#" class="alert-text-title-callback"&Alert With Text and Title and Callback&/a&&/p&
&p&&a href="#" class="alert-text-callback"&Alert With Text and Callback&/a&&/p&
$(function(){
$(document).on('click','.alert-text',function () {
$.alert('Here goes alert text');
$(document).on('click','.alert-text-title', function () {
$.alert('Here goes alert text', 'Custom Title!');
$(document).on('click', '.alert-text-title-callback',function () {
$.alert('Here goes alert text', 'Custom Title!', function () {
$.alert('Button clicked!')
$(document).on('click', '.alert-text-callback',function () {
$.alert('Here goes alert text', function () {
$.alert('Button clicked!')
Confirm modal 经常在需要确认一些行为时被使用. 打开Alert modal同样也需要调用以下任一一种App方法:$.confirm(text, [title, callbackOk, callbackCancel])或者
$.confirm(text, [callbackOk, callbackCancel])
- string. Confirm 文本
title - string. Optional. Confirm modal 标题
callbackOk
- function. Optional. 在 Confirm modal下,当用户点击“Ok”按钮时,回调函数将被执行。(当用户确认操作)
callbackCancel
- function. Optional. 在 Confirm modal下,当用户点击“Cancel”按钮时,回调函数将被执行。(当用户不想进行操作)
该方法返回动态创建的modal的HTML元素。
&header class="bar bar-nav"&
&h1 class="title"&Confirm&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="confirm-ok"&Confirm with text and Ok callback&/a&&/p&
&p&&a href="#" class="confirm-ok-cancel"&Confirm with text, Ok and Cancel callbacks&/a&&/p&
&p&&a href="#" class="confirm-title-ok"&Confirm with text, title and Ok callback&/a&&/p&
&p&&a href="#" class="confirm-title-ok-cancel"&Confirm with text, title, Ok and Cancel callback&/a&&/p&
$(document).on('click','.confirm-ok', function () {
$.confirm('Are you sure?', function () {
$.alert('You clicked Ok button');
$(document).on('click', '.confirm-ok-cancel',function () {
$.confirm('Are you sure?',
function () {
$.alert('You clicked Ok button');
function () {
$.alert('You clicked Cancel button');
$(document).on('click','.confirm-title-ok', function () {
$.confirm('Are you sure?', 'Custom Title', function () {
$.alert('You clicked Ok button');
$(document).on('click','.confirm-title-ok-cancel', function () {
$.confirm('Are you sure?', 'Custom Title',
function () {
$.alert('You clicked Ok button');
function () {
$.alert('You clicked Cancel button');
Prompt modal 经常在需要从用户那里得到一些数据/答案时使用。打开 Prompt modal同样也需要调用以下任一一种App方法:$.prompt(text, [title, callbackOk, callbackCancel])或者
$.prompt(text, [callbackOk, callbackCancel])
text - string. Prompt 文本/问题
- string. Optional. Prompt modal 标题
callbackOk
- function. Optional. 在 Prompt modal下,当用户点击“Ok”按钮时,回调函数将被执行。回调函数的参数是输入框的值
callbackCancel - function. Optional. 在 Prompt modal下,当用户点击“Cancel”按钮时,回调函数将被执行。回调函数的参数是输入框的值
该方法返回动态创建的modal的HTML元素。
&header class="bar bar-nav"&
&h1 class="title"&Prompt&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="prompt-ok"&Prompt with text and Ok callback&/a&&/p&
&p&&a href="#" class="prompt-ok-cancel"&Prompt with text, Ok and Cancel callbacks&/a&&/p&
&p&&a href="#" class="prompt-title-ok"&Prompt with text, title and Ok callback&/a&&/p&
&p&&a href="#" class="prompt-title-ok-cancel"&Prompt with text, title, Ok and Cancel callback&/a&&/p&
$(document).on('click','.prompt-ok', function () {
$.prompt('What is your name?', function (value) {
$.alert('Your name is "' + value + '". You clicked Ok button');
$(document).on('click','.prompt-ok-cancel', function () {
$.prompt('What is your name?',
function (value) {
$.alert('Your name is "' + value + '". You clicked Ok button');
function (value) {
$.alert('Your name is "' + value + '". You clicked Cancel button');
$(document).on('click', '.prompt-title-ok',function () {
$.prompt('What is your name?', 'Custom Title', function (value) {
$.alert('Your name is "' + value + '". You clicked Ok button');
$(document).on('click', '.prompt-title-ok-cancel',function () {
$.prompt('What is your name?', 'Custom Title',
function (value) {
$.alert('Your name is "' + value + '". You clicked Ok button');
function (value) {
$.alert('Your name is "' + value + '". You clicked Cancel button');
自定义Modals
Ok, 所有的预定义modals都只是一些适用于特定的场景的方法. 让我们看看如何创建自定义的 modals:
$.modal(parameters) - 显示 custom modal
parameters - object. Modal 的 parameters/options对象
该方法返回动态创建的modal的HTML元素。
这里有 Modal 的参数列表:
可选. Modal 标题 (可以是html字符串)
可选. Modal 文本 (可以是html字符串)
可选. 将被放在"text"后的文本 (可以是html字符串)
可选. 按钮数组. 每个按钮应该被表示为带按钮参数的对象 (看下面)
extraClass
可选. 给modal的根节点.modal附加1或多个自定义class(如'bg-red','bg-blue share-type'),方便按需定制不同的modal样式。
verticalButtons
Optional. Set to true to enable vertical buttons layout
可选. 回调函数将在用户点击任何Modal按钮后被触发执行. 它接收 modal (Modal的 HTML元素) 和 index作为参数 (被点击按钮的索引号)
让我们一起来看看按钮参数:
按钮文本 (可以是 HTML 字符串)
可选. 设置为true会加粗按钮文本
可选. 如果是“true”,点击这个按钮后modal会被关闭
可选. 用户点击这个按钮后,回调函数会被执行
这样的配置选项允许我们创建灵活的modals。让我们来看一些例子
&header class="bar bar-nav"&
&h1 class="title"&自定义Modals&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="open-3-modal"&Modal With 3 Buttons&/a&&/p&
&p&&a href="#" class="open-slider-modal"&Modal With Slider&/a&&/p&
&p&&a href="#" class="open-tabs-modal"&Modal With Tabs&/a&&/p&
&p&&a href="#" class="open-vertical-modal"&Modal With Vertical Buttons&/a&&/p&
$(document).on('click','.open-3-modal', function () {
'Modal with 3 buttons',
text: 'Vivamus feugiat diam velit. Maecenas aliquet egestas lacus, eget pretium massa mattis non. Donec volutpat euismod nisl in posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae',
buttons: [
text: 'B1',
onClick: function() {
$.alert('You clicked first button!')
text: 'B2',
onClick: function() {
$.alert('You clicked second button!')
text: 'B3',
bold: true,
onClick: function() {
$.alert('You clicked third button!')
$(document).on('click','.open-slider-modal', function () {
var modal = $.modal({
title: 'Awesome Photos?',
text: 'What do you think about my photos?',
afterText:
'&div class="swiper-container" style="width: margin:5px -15px -15px"&'+
'&div class="swiper-pagination"&&/div&'+
'&div class="swiper-wrapper"&'+
'&div class="swiper-slide"&&img src="..." height="150" style="display:block"&&/div&' +
'&div class="swiper-slide"&&img src="..." height="150" style="display:block"&&/div&'+
buttons: [
text: 'Bad :('
text: 'Awesome!',
bold: true,
onClick: function () {
$.alert('Thanks! I know you like it!')
$.swiper($$(modal).find('.swiper-container'), {pagination: '.swiper-pagination'});
$(document).on('click','.open-tabs-modal', function () {
'&div class="buttons-row"&'+
'&a href="#tab1" class="button active tab-link"&Tab 1&/a&'+
'&a href="#tab2" class="button tab-link"&Tab 2&/a&'+
text: '&div class="tabs"&'+
'&div class="tab active" id="tab1"&Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam convallis nunc non dolor euismod feugiat. Sed at sapien nisl. Ut et tincidunt metus. Suspendisse nec risus vel sapien placerat tincidunt. Nunc pulvinar urna tortor.&/div&'+
'&div class="tab" id="tab2"&Vivamus feugiat diam velit. Maecenas aliquet egestas lacus, eget pretium massa mattis non. Donec volutpat euismod nisl in posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae&/div&'+
buttons: [
text: 'Ok, got it',
bold: true
$(document).on('click','.open-vertical-modal', function () {
'Vertical Buttons Layout',
text: 'Vivamus feugiat diam velit. Maecenas aliquet egestas lacus, eget pretium massa mattis non. Donec volutpat euismod nisl in posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae',
verticalButtons: true,
buttons: [
text: 'Button 1',
onClick: function() {
$.alert('You clicked first button!')
text: 'Button 2',
onClick: function() {
$.alert('You clicked second button!')
text: 'Button 3',
onClick: function() {
$.alert('You clicked third button!')
用 JavaScript 关闭 Modals
任何 Modal 可以用 JavaScript 来关闭,不仅仅是通过点击按钮。因此我们需要看看相关App方法:
$.closeModal(modal) - 关闭任意 modal
modal - HTMLElement or string ( CSS 选择器). 可选. 除了指定的,任何被打开modal都将被关闭。
带标题的加载指示器
预加载 Modal 用来提示一些后台活动(像Ajax请求)和阻止在这个活动期间的任何用户操作。 打开预加载 modal 我们也需要调用适当的App方法: $.show预加载([title])- 显示 预加载 modal
- string. Optional. 预加载 modal 标题. 默认(没有指定)的时候,它等同于 "Loading...". 你可以在App初始化时通过 modal预加载Title 参数改变默认的 预加载 标题。
该方法返回动态创建的modal的HTML元素。
$.hide预加载() - 隐藏/关闭 预加载 modal. 因为 预加载 modal 没有任何按钮, 它应该用 JavaScript 来关闭
&header class="bar bar-nav"&
&h1 class="title"&预加载 Modal (Preloader Modal)&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="open-preloader"&Open Preloader&/a&&/p&
&p&&a href="#" class="open-preloader-title"&Open Preloader with custom title&/a&&/p&
$(document).on('click', '.open-preloader', function () {
$.showPreloader();
setTimeout(function () {
$.hidePreloader();
$(document).on('click','.open-preloader-title', function () {
$.showPreloader('Custom Title')
setTimeout(function () {
$.hidePreloader();
迷你指示器
如果你不需要用像预加载Modal这样如此大的modal 窗口去指示活动, 你可以使用简单并且小的指示器modal:
$.showIndicator() - 显示指示器 modal
$.hideIndicator() - 隐藏/关闭指示器 modal. 因为指示器modal没有任何按钮, 它需要用JavaScript来关闭
&header class="bar bar-nav"&
&h1 class="title"&指示器(indicator)&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="open-indicator"&Open Indicator&/a&&/p&
$(document).on('click','.open-indicator', function () {
$.showIndicator();
setTimeout(function () {
$.hideIndicator();
toast是一种轻量的提示,在页面中间显示,并且会在2秒(默认值,可修改)之后自动消失。
可以用来显示一些不会打断用户操作的提示。
/* msg{string}: toast内容
* duration{number}:toast显示时间,默认2000
* extraclass{string}:给toast根节点附加class,高度自定义属性,方便用户自行控制不同场景的样式。
* 如果使用了第三个参数,请自行在业务css里添加extraclass对应的样式
$.toast("操作失败");
$.toast('操作成功,正在跳转...', 2345, 'success top');
Popup 是一种可以包含任何Html内容的弹出窗口,从App的主内容区域上弹出。 Popup 和其他所有的遮罩图层一样,是所谓的“临时视图”的一部分。
Popup 布局
Popup 布局相当简单. 你所需要做的就是将
任何需要展示的内容
放到 body 里正确的位置上:
&div class="modal modal-no-buttons"&
&div class="popup"&
Any HTML content goes here
打开和关闭 Popup
可以通过在链接上使用特定的类和data属性打开和关闭所需的popups:
为了打开popup,我们需要添加 "open-popup" 类到任意 HTML 元素上 (最好是链接)
为了关闭popup,我们需要添加 "close-popup" 类到任意 HTML 元素上 (最好是链接)
如果你的App里有超过一个popups, 你需要指定适当popup,则需添加额外的属性 data-popup=".my-popup" 到这个 HTML 元素上
根据上面的注意点:
Lorem ipsum dolor ...
Lorem ipsum dolor ...
&header class="bar bar-nav"&
&h1 class="title"&Popup(HTML)&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="open-about"&Open About Popup &/a&&/p&
&p&&a href="#" class="open-services"&Open Services Popup &/a&&/p&
&!-- About Popup --&
&div class="popup popup-about"&
&div class="content-block"&
&p&About&/p&
&p&&a href="#" class="close-popup"&Close popup&/a&&/p&
&p&Lorem ipsum dolor ...&/p&
&!-- Services Popup --&
&div class="popup popup-services"&
&div class="content-block"&
&p&Services&/p&
&p&&a href="#" class="close-popup"&Close popup&/a&&/p&
&p&Lorem ipsum dolor ...&/p&
使用 JavaScript
我们也可以用使用JavaScript来打开和关闭Popups ,因此我们需要看一下相关的App方法:
$.popup(popup) - 打开 Popup
popup - HTML元素 或者 字符串 (需要打开的popup的 CSS 选择器) . 必需
$.closeModal(popup) - 关闭 Popup
popup - HTML元素 或者 字符串 (需要打开的popup的 CSS 选择器). 可选. 如果没有设置这个值,任何打开着的Popup/Modal 都将被关闭
Lorem ipsum dolor ...
Lorem ipsum dolor ...
&header class="bar bar-nav"&
&h1 class="title"&Popup(JavaScript)&/h1&
&div class="content"&
&div class="content-block"&
&p&&a href="#" class="open-about"&Open About Popup &/a&&/p&
&p&&a href="#" class="open-services"&Open Services Popup &/a&&/p&
&!-- About Popup --&
&div class="popup popup-about"&
&div class="content-block"&
&p&About&/p&
&p&&a href="#" class="close-popup"&Close popup&/a&&/p&
&p&Lorem ipsum dolor ...&/p&
&!-- Services Popup --&
&div class="popup popup-services"&
&div class="content-block"&
&p&Services&/p&
&p&&a href="#" class="close-popup"&Close popup&/a&&/p&
&p&Lorem ipsum dolor ...&/p&
$(document).on('click','.open-about', function () {
$.popup('.popup-about');
$(document).on('click','.open-services', function () {
$.popup('.popup-services');
Popup 事件
Popup 和 Modals有一样的事件, 如果你需要在打开/关闭popup时使用JavaScript做一些事情的时候,这些事件会很有用。
Popup Element&div class="popup"&
当 Popup 开始打开动画时,事件将被触发。
Popup Element&div class="popup"&
当 Popup 完成打开动画时,事件将被触发。
Popup Element&div class="popup"&
当 Popup 开始结束动画时,事件将被触发。
Popup Element&div class="popup"&
当 Popup 完成结束动画后,事件将被触发。
Lorem ipsum dolor ...
Lorem ipsum dolor ...
&header class="bar bar-nav"&
&h1 class="title"&Popup事件&/h1&
&div class="content"&
&div class="content-block"&
&!-- In data-popup attribute we specify CSS selector of popup we need to open --&
&p&&a href="#" data-popup=".popup-about" class="open-popup"&Open About Popup &/a&&/p&
&p&&a href="#" data-popup=".popup-services" class="open-popup"&Open Services Popup &/a&&/p&
&!-- About Popup --&
&div class="popup popup-about"&
&div class="content-block"&
&p&About&/p&
&p&&a href="#" class="close-popup"&Close popup&/a&&/p&
&p&Lorem ipsum dolor ...&/p&
&!-- Services Popup --&
&div class="popup popup-services"&
&div class="content-block"&
&p&Services&/p&
&p&&a href="#" class="close-popup"&Close popup&/a&&/p&
&p&Lorem ipsum dolor ...&/p&
$(document).on('click','.popup-about', function () {
console.log('About Popup opened')
$(document).on('click','.popup-about', function () {
console.log('About Popup is closing')
$(document).on('click','.popup-services', function () {
console.log('Services Popup is opening')
$(document).on('click','.popup-services', function () {
console.log('Services Popup is closed')
动态的 Popup
允许你调用相关的App方法时传递HTML内容来动态地创建Popup:
$.popup(popupHTML, removeOnClose) - 打开 Popup
popupHTML - string. popup的HTML字符串
removeOnClose - boolean. 可选, 默认 - true. 如果是 true, 那么 Popup 在关闭时将从DOM中移除
&header class="bar bar-nav"&
&h1 class="title"&动态的 Popup&/h1&
&div class="content"&
&div class="content-block"&
&!-- In data-popup attribute we specify CSS selector of popup we need to open --&
&p&&a href="#" class="create-popup"&Create Popup&/a&&/p&
$(document).on('click','.create-popup', function () {
var popupHTML = '&div class="popup"&'+
'&div class="content-block"&'+
'&p&Popup created dynamically.&/p&'+
'&p&&a href="#" class="close-popup"&Close me&/a&&/p&'+
$.popup(popupHTML);
日历组件用来选择年月日,可以代替系统原生的日历组件,提供更统一的视觉和交互以及更好的兼容性。
日历组件需要初始化才能使用,最简单的方式是通过一下JS代码来初始化,绑定到一个input元素上:
$("#my-input").calendar({
value: ['']
当你点击input元素后,会自动弹出一个JS生成的日历组件。当用户选择日期之后,input的值会被设置为用户选择的日期。
如果你不想写js,可以通过以下方式来自动初始化:
&input type="text" data-toggle='date' /&
你可以在初始化的时候指定如下参数:
初始化打开后默认选中的时间。格式是value: ['']
inputReadOnly
是否在input上增加一个 readonly 属性使用户无法自己输入
dateFormat
'yyyy-mm-dd'
格式化日期
最小可选日期,比如
最大可选日期,比如
function(p, values, displayValues){}
当用户选择日期时触发
function(p){}
日历弹层打开时触发
function(p){}
日历弹层关闭时触发
当用户选择完日期之后,会在 input 上触发 change 事件,你可以监听此事件。
如果你只同时选择日期和时间 , 请使用
日历插件是非常智能的,如果在一个非 input 元素上初始化,它会自动变成内联形式。
&div data-toggle='date' /&
操作表可以让用户从多个可选的操作中选择一个
$.actions(buttons) - 创建并弹出一个操作表
buttons - 显示的几个按钮,你也可以把按钮分组
你可以通过 color: "danger" 来指定按钮的文案为红色
或者通过 bg: "danger" 来指定按钮的背景为红色
&header class="bar bar-nav"&
&h1 class="title"&操作表&/h1&
&div class="content"&
&div class="content-block"&
&!-- In data-popup attribute we specify CSS selector of popup we need to open --&
&p&&a href="#" class="create-actions"&选择操作&/a&&/p&
$(document).on('click','.create-actions', function () {
var buttons1 = [
text: '请选择',
label: true
text: '卖出',
bold: true,
color: 'danger',
onClick: function() {
$.alert("你选择了“卖出“");
text: '买入',
onClick: function() {
$.alert("你选择了“买入“");
var buttons2 = [
text: '取消',
bg: 'danger'
var groups = [buttons1, buttons2];
$.actions(groups);
picker是一个JS实现的类似select的组件,他可以代替原生的select组件,并且功能更加强大、样式更加统一。
picker 需要初始化才能使用,你可以在一个 input
元素上初始化picker,当用户点击input的时候会弹出picker的弹层
&input type="text" id='picker'/&
$("#picker").picker({
toolbarTemplate: '&header class="bar bar-nav"&\
&button class="button button-link pull-left"&按钮&/button&\
&button class="button button-link pull-right close-picker"&确定&/button&\
&h1 class="title"&标题&/h1&\
&/header&',
textAlign: 'center',
values: ['iPhone 4', 'iPhone 4S', 'iPhone 5', 'iPhone 5S', 'iPhone 6', 'iPhone 6 Plus', 'iPad 2', 'iPad Retina', 'iPad Air', 'iPad mini', 'iPad mini 2', 'iPad mini 3']
关闭picker
在任何元素上加上一个 .close-picker 类,点击它就会关闭 picker。
你也可以通过调用 $(".picker").picker("close") 或者 $.closeModal(".picker-modal.modal-in") 来关闭。
picker参数
你可以通过设置 toolbarTemplate 参数来自定义工具栏模板。在 cols 参数中可以传入多列值。
$("#picker-name").picker({
toolbarTemplate: '&header class="bar bar-nav"&\
&button class="button button-link pull-right close-picker"&确定&/button&\
&h1 class="title"&请选择称呼&/h1&\
&/header&',
textAlign: 'center',
values: ['赵', '钱', '孙', '李', '周', '吴', '郑', '王']
//如果你希望显示文案和实际值不同,可以在这里加一个displayValues: [.....]
textAlign: 'center',
values: ['杰伦', '磊', '明', '小鹏', '燕姿', '菲菲', 'Baby']
textAlign: 'center',
values: ['先生', '小姐']
所有可用参数如下:
toolbarTemplate
&header class="bar bar-nav"&
&button class="button button-link pull-right close-picker"&确定&/button&
&h1 class="title"&&/h1&
工具栏的模板,可以自己定义。
input元素的value属性。多列默认值用空格隔开,如&input value="钱 明 小姐"&。如果任一列默认值本身含空格(如‘ipad mini 2’),那就只能用JS方法调用模式传入value参数
为 picker 添加默认值,数组里每一项对应每一列默认值,如["钱", "明", "小姐"]
rotateEffect
是否启用3D效果,启用3D可能会影响性能
是否显示工具栏
inputReadOnly
是否会在input上添加一个 readonly 属性
为 picker 容器增加额外的类,可以用来自定义样式
自定义 picker 打开时的触发动作
自定义 picker 关闭时的触发动作
formatValue
自定义方法,用来控制如何显示picker的选中值,formatValue: function (picker, value, displayValue){},value, displayValue为数组,长度等于cols长度
picker方法
你可以通过 $(".picker").picker("method", args1, args2...) 的方式来调用相关的方法。
$("#picker-name").picker("open");
$("#picker-name").picker("close");
$("#picker-name").picker("setValue", ["2012", "12", "12"]);
所有可用方法如下:
打开picker
关闭picker
一个字符串数组,其中每个字符串对应每一列
常在iOS应用中看到的列表,是种多功能且强大的交互组件。列表将数据展现在一个可滚动的多行的列表中,可以将数据划分成不同的片段/组(sections/groups)。
列表有以下用途:
让用户可以浏览结构化的多级数据
展现一个索引列表
在可视化的不同分组中,显示详细信息和控件
展现一个可以选择的列表
&header class="bar bar-nav"&
&h1 class="title"&视图列表&/h1&
&div class="content"&
&div class="content-block-title"&图标、标题和副标题&/div&
&div class="list-block"&
&li class="item-content"&
&div class="item-media"&&i class="icon icon-f7"&&/i&&/div&
&div class="item-inner"&
&div class="item-title"&商品名称&/div&
&div class="item-after"&杜蕾斯&/div&
&li class="item-content"&
&div class="item-media"&&i class="icon icon-f7"&&/i&&/div&
&div class="item-inner"&
&div class="item-title"&型号&/div&
&div class="item-after"&极致超薄型&/div&
&div class="content-block-title"&标题和副标题&/div&
&div class="list-block"&
&li class="item-content"&
&div class="item-inner"&
&div class="item-title"&商品名称&/div&
&div class="item-after"&杜蕾斯&/div&
&li class="item-content"&
&div class="item-inner"&
&div class="item-title"&型号&/div&
&div class="item-after"&极致超薄型&/div&
&div class="content-block-title"&带箭头&/div&
&div class="list-block"&
&li class="item-content item-link"&
&div class="item-media"&&i class="icon icon-f7"&&/i&&/div&
&div class="item-inner"&
&div class="item-title"&商品名称&/div&
&div class="item-after"&杜蕾斯&/div&
&li class="item-content item-link"&
&div class="item-media"&&i class="icon icon-f7"&&/i&&/div&
&div class="item-inner"&
&div class="item-title"&型号&/div&
&div class="item-after"&极致超薄型&/div&
item-content - item-media和item-inner的主要弹性(flex)容器。必选元素。
item-media - 媒体元素(如图标,图片等)的容器。可选元素。
item-inner - item-title和item-after的主要弹性(flex)容器。必选元素。
item-title - 单行列表项目标题。必选元素。
item-after - 列表项目标签。可以包含任意额外的html元素(例如标签文本、徽章、switch/toggle、按钮等等)。可选元素。
在 .item-content 上加上 .item-link 会增加一个向右的箭头。
联系人列表(Contacts List)
联系人列表用来展示个人的联系方式。
联系人列表是的一个特殊的类型,主要有2点不同:
列表区域元素(“list-block”)需要带上额外的“contacts-block”类
&header class="bar bar-nav"&
&h1 class="title"&联系人列表&/h1&
&div class="content"&
&div class="list-block contacts-block"&
&div class="list-group"&
&li class="list-group-title"&A&/li&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题1&/div&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题2&/div&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题3&/div&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题4&/div&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题5&/div&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题6&/div&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题7&/div&
&div class="item-content"&
&div class="item-inner"&
&div class="item-title"&标题8&/div&
&div class="list-group"&
&li class="list-group-title"&B&/li&
&div class="item-con}

我要回帖

更多关于 bootstrap alert 弹出 的文章

更多推荐

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

点击添加站长微信