- Getting Started
- edpx-mobile v1.0.0
- rebas
- rider
- saber-ajax
- saber-cookie
- saber-dom
- saber-emitter
- saber-env
- saber-fastbutton
- saber-firework
- saber-firework v2.0.0
- saber-firework v2.0.0-beta.2
- saber-firework v2.0.0-beta.1
- saber-firework v2.0.0-alpha.2
- saber-firework v2.0.0-alpha.1
- saber-firework v1.0.0
- saber-firework v0.4.2
- saber-firework v0.4.1
- saber-firework v0.4.0
- saber-firework v0.3.2
- saber-firework v0.3.1
- saber-firework v0.3.0
- saber-firework v0.2.6
- saber-firework v0.2.5
- saber-firework v0.2.4
- saber-firework v0.2.1
- saber-firework v0.2.0
- saber-firework v0.1.0-beta.4
- saber-firework v0.1.0-beta.3
- saber-firework v0.1.0-beta.1
- saber-geo v0.1.0
- saber-lang
- saber-log v0.1.0
- saber-matchmedia
- saber-mm
- saber-promise
- saber-promise v2.1.0
- saber-promise v2.0.0
- saber-promise v2.0.0-beta.1
- saber-promise v2.0.0-alpha.3
- saber-promise v2.0.0-alpha.2
- saber-promise v2.0.0-alpha.1
- saber-promise v1.0.2
- saber-promise v1.0.0
- saber-promise v0.1.2
- saber-promise v0.1.2-beta.3
- saber-promise v0.1.2-beta.2
- saber-promise v0.1.2-beta.1
- saber-promise v0.1.1
- saber-promise v0.1.0
- saber-rainbow
- saber-router
- saber-router v2.0.0
- saber-router v2.0.0-beta.1
- saber-router v2.0.0-alpha.2
- saber-router v2.0.0-alpha.1
- saber-router v1.0.0
- saber-router v0.2.4
- saber-router v0.2.3
- saber-router v0.2.2
- saber-router v0.2.1
- saber-router v0.2.0
- saber-router v0.1.0
- saber-router v0.1.0-beta.5
- saber-router v0.1.0-beta.4
- saber-router v0.1.0-beta.3
- saber-router v0.1.0-beta.2
- saber-router v0.1.0-beta.1
- saber-run
- saber-scroll
- saber-storage
- saber-string
- saber-tap
- saber-uri
- saber-viewport
- saber-viewport v1.1.0
- saber-viewport v1.0.0
- saber-viewport v0.2.12
- saber-viewport v0.2.11
- saber-viewport v0.2.10
- saber-viewport v0.2.9
- saber-viewport v0.2.8
- saber-viewport v0.2.6
- saber-viewport v0.2.5
- saber-viewport v0.2.1-beta.7
- saber-viewport v0.2.1-beta.6
- saber-viewport v0.2.1-beta.5
- saber-viewport v0.2.1-beta.4
- saber-viewport v0.2.1-beta.3
- saber-viewport v0.2.1-beta.2
- saber-viewport v0.2.1-beta.1
- saber-viewport v0.2.0
- saber-viewport v0.1.0
- saber-widget
saber-viewport v0.2.10
saber-viewport
移动端页面视口管理,提供页面转场功能
Usage
var viewport = require('saber-viewport'); var page; // 引入转场效果 require('saber-viewport/transition/fadeInOut'); // 初始化视口 viewport.init('viewport'); // 加载页面 page = viewport.load(url); // 渲染页面 ... // 使用淡入淡出效果转场页面 page.enter('fadeInOut');
About Bar
移动页面顶部或者底部一般都有navigation bar、toolbar之类的,这些部件在页面转场时通常不变化或者特殊变化,通过添加data-viewport-bar
与data-name
自定义dom属性来支持。
比如现在有三个页面A、B、C,顶部都有navigation bar,前两页面bar样式相同,最后一个页面为详情页面,bar上添加了“返回”按钮,大体就如下这般:
<!-- page A --> <body> <div class="nav" data-viewport-bar="navigation" data-name="main"> ... </div> </body> <!-- page B --> <body> <div class="nav" data-viewport-bar="navigation" data-name="main"> ... </div> </body> <!-- page C --> <body> <div class="nav" data-viewport-bar="navigation" data-name="detail"> ... <a>返回</a> </div> </body>
通过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
元素,在转场时进行自动处理,比如:
<div class="search" data-viewport-fixed><input type="text"><a class="search-btn">Search</a></div>
已经被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(string)
创建新页面的容器,返回Page
对象。页面的具体渲染需要通过Page.main
属性获取容器元素后自行完成
Page
页面对象,由load()
方法创建、返回
Page.main
页面的容器元素
Page.enter(type, options)
启动页面转场
type
{boolean|string}
转场效果,boolean
参数表示是否启用转场效果,string
参数表示具体的转场效果options
{object=}
转场效果配置options.duration
{number=}
转场动画时长,单位为秒options.timing
{string=}
转场缓动效果,取值请参考CSS3中的transition-timing-functionoptions.transform
{boolean=}
是否使用css transform进行转场设置
Page.on(eventName, callback)
注册页面事件,可选择的eventName
如下:
beforeleave
前景页转出前事件beforeenter
后景页转入前事件afterleave
前景页转出完成事件afterenter
后景页转入完成事件
前景页:当前显示、待转出的页面
后景页:待转入的页面
===
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论