saber-viewport
移动端页面视口管理,提供页面转场功能
Usage
|
|
About Bar
移动页面顶部或者底部一般都有navigation bar、toolbar之类的,这些部件在页面转场时通常不变化或者特殊变化,通过添加data-viewport-bar
与data-name
自定义dom属性来支持。
比如现在有三个页面A、B、C,顶部都有navigation bar,前两页面bar样式相同,最后一个页面为详情页面,bar上添加了“返回”按钮,大体就如下这般:
|
|
通过data-viewport-bar
分类页面中不同类型的bar,bar的转场切换只会在同类tab之间进行。data-name
表示bar的名称,名称相同的bar转场时不会有变化,而类型相同名称不同的bar之前会有转场效果。
示例中从A切换到B时顶部导航条不会有变化(data-name
相同),而从B切换到C时顶部导航条会进行转场效果(data-name
不同)。
注:saber-viewport
并不控制bar在页面中的位置、样式,这些还是由页面控制。
About Fixed
转场操作时position:fixed
的元素会影响转场效果(特别是在使用transform
进行转场时,参考webkit-css-transform3d-position-fixed-issue, The Transform Rendering Model),saber-viewport
支持使用data-viewport-fixed
标注fixed
元素,在转场时进行自动处理,比如:
|
|
已经被data-viewport-bar
标记的fixed
元素不再需要重复标记data-viewport-fixed
API
.init(ele, options)
初始化视口
ele
{HTMLElement}
视图主元素或者元素idoptions
{Object=}
全局配置参数options.transition
{boolean|string=}
转场效果,boolean
参数表示是否启用转场效果,string
参数表示具体的转场效果,目前支持slide
滑动转场,fadeInOut
淡入淡出转场,默认为true
,表示启动转场效果,但不指定默认的转场效果options.duration
{number=}
转场动画时长,单位为秒,默认为0.3
options.timing
{string=}
转场缓动效果,取值请参考CSS3中的transition-timing-function,默认为'ease'
options.transform
{boolean=}
是否使用css transform进行转场设置,默认为true
options.mask
{boolean=}
转场动画进行时使用全局遮罩浮层,防止由于页面操作意外终止转场动画,默认为true
options.resetScroll
{boolean=}
转场是否启用页面scroll修正,默认为true
.load(url, options)
创建新页面的容器,返回Page
对象。页面的具体渲染需要通过Page.main
属性获取容器元素后自行完成
url
{string}
页面的URL,用于页面标示options
{Object=}
选项参数options.cache
{boolean=}
是否缓存page 默认false
options.noCache
{boolean=}
是否不启用缓存 默认false
Page
页面对象,由load()
方法创建、返回
.main
页面的容器元素
.enter(type, options)
启动页面转场
type
{boolean|string}
转场效果,boolean
参数表示是否启用转场效果,string
参数表示具体的转场效果options
{object=}
转场效果配置options.duration
{number=}
转场动画时长,单位为秒options.timing
{string=}
转场缓动效果,取值请参考CSS3中的transition-timing-functionoptions.transform
{boolean=}
是否使用css transform进行转场设置
.on(eventName, callback)
注册页面事件,可选择的eventName
如下:
beforeleave
前景页转出前事件beforeenter
后景页转入前事件afterleave
前景页转出完成事件afterenter
后景页转入完成事件
前景页:当前显示、待转出的页面
后景页:待转入的页面
===