WEUI应用,用JS封装常用信息—ActionSheet
2016-09-28 16:03
417 查看
一、这是未封装前的官方代码:
二、封装后的官方代码:
(问题:不知道为什么点击后弹出菜单后再点完后,会弹出更多一次的alert,有高手请指点)
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"> <title>WeUI</title> <link rel="stylesheet" href="style/weui.min.css"/> <link rel="stylesheet" href="example/example.css"/> <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script> <script> $(document).on("click","#showActionSheet",function(){ actionSheetMenu(); }); function actionSheetMenu(){ var mask = $('#mask'); var weuiActionsheet = $('#weui_actionsheet'); weuiActionsheet.addClass('weui_actionsheet_toggle'); mask.show() .focus()//加focus是为了触发一次页面的重排(reflow or layout thrashing),使mask的transition动画得以正常触发 .addClass('weui_fade_toggle').one('click', function () { hideActionSheet(weuiActionsheet, mask); }); $('#actionsheet_cancel').one('click', function () { hideActionSheet(weuiActionsheet, mask); }); mask.unbind('transitionend').unbind('webkitTransitionEnd'); function hideActionSheet(weuiActionsheet, mask) { weuiActionsheet.removeClass('weui_actionsheet_toggle'); mask.removeClass('weui_fade_toggle'); mask.on('transitionend', function () { mask.hide(); }).on('webkitTransitionEnd', function () { mask.hide(); }) } } </script> </head> <body ontouchstart> <div class="hd"> <h1 class="page_title">ActionSheet</h1> </div> <div class="bd spacing"> <a href="javascript:;" class="weui_btn weui_btn_primary" id="showActionSheet">点击上拉ActionSheet</a> </div> <div id="actionSheet_wrap"> <div class="weui_mask_transition" id="mask"></div> <div class="weui_actionsheet" id="weui_actionsheet"> <div class="weui_actionsheet_menu"> <div class="weui_actionsheet_cell">示例菜单</div> <div class="weui_actionsheet_cell">示例菜单</div> <div class="weui_actionsheet_cell">示例菜单</div> <div class="weui_actionsheet_cell">示例菜单</div> </div> <div class="weui_actionsheeet_action"> <div class="weui_actionsheet_cell" id="actionsheet_cancel">取消</div> </div> </div> d413 </div> </body> </html>
二、封装后的官方代码:
(问题:不知道为什么点击后弹出菜单后再点完后,会弹出更多一次的alert,有高手请指点)
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"> <title>WeUI</title> <link rel="stylesheet" href="style/weui.min.css"/> <link rel="stylesheet" href="example/example.css"/> <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script> <script> $(document).on("click","#showActionSheet",function(){ actionSheetMenu({id:'aa',text:'菜单一'},{id:'bb',text:'菜单二'},{id:'cc',text:'菜单三'}); $('body').on('click','#aa',function(){ alert('菜单一'); $('#actionsheet_cancel').trigger('click'); }); $('body').on('click','#bb',function(){ alert('菜单二'); }); $('body').on('click','#cc',function(){ location.href="http://www.baidu.com"; }); }); function actionSheetMenu(){ if(!arguments.length){ return; } var menuHtml = ''; for(i=0;i<arguments.length;i++){ if(typeof(arguments[i]) != 'object' || !arguments[i].id || !arguments[i].text){ continue; } menuHtml += '<div class="weui_actionsheet_cell" id="' + arguments[i].id + '">' + arguments[i].text + '</div>'; } if(!menuHtml){ return; } var actionSheetMenuStr; actionSheetMenuStr = '\ <div id="actionSheet_wrap">\ <div class="weui_mask_transition" id="mask"></div>\ <div class="weui_actionsheet" id="weui_actionsheet">\ <div class="weui_actionsheet_menu">\ </div>\ <div class="weui_actionsheet_action">\ <div class="weui_actionsheet_cell" id="actionsheet_cancel">取消</div>\ </div>\ </div>\ </div>\ '; if(!$('#actionSheet_wrap').length){ $('body').append(actionSheetMenuStr); } $('.weui_actionsheet_menu').html(menuHtml); $('#mask').show().addClass('weui_fade_toggle'); $('#weui_actionsheet').addClass('weui_actionsheet_toggle'); $('#mask').unbind('transitionend').unbind('webkitTransitionEnd'); $('#mask , #actionsheet_cancel').on('click',function(){ $('#mask').removeClass('weui_fade_toggle'); $('#weui_actionsheet').removeClass('weui_actionsheet_toggle'); $('#mask').on('transitionend webkitTransitionEnd',function(e){ $('#mask').hide(); }); }); } </script> </head> <body ontouchstart> <div class="hd"> <h1 class="page_title">ActionSheet</h1> </div> <div class="bd spacing"> <a href="javascript:;" class="weui_btn weui_btn_primary" id="showActionSheet">点击上拉ActionSheet</a> </div> </body> </html>
相关文章推荐
- WEUI应用,用JS封装常用信息提示的弹层—Dialog
- weUI应用,用JS封装了几个常用的信息提示的弹层
- WEUI应用,用JS封装常用信息提示的弹层—Toast
- WEUI应用,用JS封装常用信息—Progress
- WEUI应用,用JS封装常用信息提示的弹层—Toast
- WEUI应用,用JS封装常用信息提示的弹层—Msg
- js提示信息jtip封装代码,可以是图片或文章
- js闪烁提示错误信息---setTimeout和setInterval的应用
- JS简单应用——身份证号码信息截取
- js 常用封装方法
- Linux下查看源码编译的常用应用服务的信息
- JS在用户离开页面时提示信息&常用的弹出窗口用法
- js模拟类机制应用——封装遮罩弹窗功能
- 百度地图api应用标注地理位置信息(js版)
- 自己封装的js前端框架(包含了jquery的常用功能)
- 常用数据库的特点、应用场景信息整理
- JavaScript之信息的封装 js对象入门
- js提示信息jtip封装代码,可以是图片或文章