@@ -68,13 +68,70 @@ <h1>如何使用?</h1>
68
68
page</ pre >
69
69
</ div >
70
70
</ div >
71
- < div id =" page4 " class ="page out ">
71
+ < div class ="page out ">
72
72
< div class ="content only-header ">
73
73
< h1 > 优势?</ h1 >
74
74
< p > mobilebone.js只做了一件事情,切换。所以,JS文件很小,gzip后3~4K, 而且很灵活,几乎没有任何UI的限制,适用于各个项目各个场景。</ p >
75
75
</ div >
76
76
</ div >
77
- < div id ="page5 " class ="page out ">
77
+
78
+ < div class ="page out ">
79
+ < div class ="content only-header ">
80
+ < h1 > mobilebone.js深入</ h1 >
81
+ < h4 > 基本触发机制</ h4 >
82
+ < p > 与jQuery Mobile类似的机制,引入mobilebone.js, 即对页面所有a标签做了委托。根据< code > href</ code > 值做智能判断直接过场,Ajax请求过场,还是无作为(javascript:*或外链)。< code > data-ajax="false"</ code > 会还原链接为传统跳转。</ p >
83
+ < p > 默认是< code > click</ code > 绑定,但如果你引用类似Zepto的< code > touch</ code > 模块,则mobilebone走< code > touch</ code > 事件。</ p >
84
+ < p > < code > Mobilebone.captureLink = false</ code > 全局设置,会让页面所有链接普通化,除非有< code > data-ajax=true</ code > .</ p >
85
+ < p > 对页面所有< code > form</ code > 的< code > submit</ code > 也做了委托,默认所有的表单都是< code > ajax</ code > 提交,并根据返回内容实现过场效果。规则与< code > a</ code > 元素< code > ajax</ code > 提交类似。</ p >
86
+ </ div >
87
+ </ div >
88
+
89
+ < div class ="page out ">
90
+ < div class ="content only-header ">
91
+ < h1 > mobilebone.js深入</ h1 >
92
+ < h4 > 过场原理</ h4 >
93
+ < p > 与jQuery Mobile一样的机制,in/out/reverse类名切换触发:</ p >
94
+ < pre class ="f20 "> "page slide in" / "page slide out" → "page slide out" / "page slide in"</ pre >
95
+ < p class ="fade out "> 其中< code > slide</ code > 是动画的类型,默认值。你可以自定义,或者使用< code > animate.css</ code > (jQuery Mobile中CSS分离), 含更多过场效果。</ p >
96
+ < div class ="fade out ">
97
+ < h4 > 路由管理机制</ h4 >
98
+ < p > 使用HTML5 < code > history</ code > API. 使用url < code > hash</ code > 记录, 格式同样借鉴J&M, < code > #&</ code > , 后面跟随每个页面对应的标志量(页面id或ajax地址)。</ p >
99
+ < p > 每当页面刷新、前进或后退(< code > popstate</ code > ), Mobilebone会根据< code > hash</ code > 对应标志量直接显示或重新请求对应页面。</ p >
100
+ </ div >
101
+ </ div >
102
+ </ div >
103
+
104
+ < div class ="page out ">
105
+ < div class ="content only-header ">
106
+ < h1 > mobilebone.js深入</ h1 >
107
+ < h4 > 页面缓存机制</ h4 >
108
+ < p > 默认即存在的page默认都缓存;ajax请求页面默认缓存,< code > data-reload="true"</ code > 时候请求页面不会缓存。</ p >
109
+ < div class ="fade out ">
110
+ < h4 > 页面事件管理</ h4 >
111
+ < p > 可全局或单独页面设置各类回调事件,目前有:< code > callback</ code > , < code > fallback</ code > , < code > onpagefirstinto</ code > , < code > animationstart</ code > , < code > animationend</ code > , < code > preventdefault</ code > .</ p >
112
+ < p > 全局定义如:Mobilebone.callback = function() {};</ p >
113
+ < p > 局部定义< code > data-callback="function_key"</ code > . 可以使用< code > data-root</ code > 指定暴露的全局对象,例如:< code > data-root="$"</ code > </ p >
114
+ < p > < code > Mobilebone.mergeCallback</ code > 可以控制全局和局部回调是覆盖还是合并(默认)。</ p >
115
+ </ div >
116
+ </ div >
117
+ </ div >
118
+
119
+ < div class ="page out ">
120
+ < div class ="content only-header ">
121
+ < h1 > mobilebone.js深入</ h1 >
122
+ < h4 class ="mb-3 "> Ajax参数以及事件管理</ h4 >
123
+ < p > 与jQuery, Zepto < code > $.ajax()</ code > 一致,例如< code > data-success</ code > , < code > data-error</ code > , < code > data-timeout</ code > 等,也可以使用< code > data-params</ code > 以查询字符串形式设置多个参数。</ p >
124
+ < p class ="fade out "> < code > form</ code > 表单也是如此。</ p >
125
+ < p class ="fade out "> 如果< code > datatype</ code > 为< code > "json"</ code > ,Mobilebone会拿< code > Mobilebone.jsonHandle(response)</ code > 的返回值作为新页面载入。如果是默认字符串类型,则直接载入< code > response</ code > (有处理,获取< code > title</ code > , < code > page</ code > 元素等).</ p >
126
+ < div class ="fade out ">
127
+ < h4 class ="mb-3 "> 其他细节</ h4 >
128
+ < p > 有< code > title</ code > 管理机制,方向管理机制< code > data-rel="abck/auto"</ code > ,菊花可定制(整页或某元素内),或者模块化加载等。</ p >
129
+ < pre class ="mt-3 "> var Mobilebone = require('mobilebone');
130
+ Mobilebone.init();</ pre >
131
+ </ div >
132
+ </ div >
133
+ </ div >
134
+ < div class ="page out ">
78
135
< div class ="content section-header ">
79
136
< h1 > Q&A</ h1 >
80
137
< h2 > by zhangxinxu 2014-10</ h2 >
0 commit comments