PhyTouch 丝般顺滑的触摸运动方案
AlloyTouch 的本质是运动一个数字,把数字的物理变化映射到你想映射的任何属性上。所以带来了广泛的应用场景。不论实在应用、游戏、操作系统等许多层面,监听用户触摸,给用户真实的运动反馈是很常见的应用场景。如王者荣耀里,旋转用户角色,抽奖程序滚动转盘、页面滚动、局部滚动等。
上面的那些场景,都会使用到下面三种过程之一:
- 触摸、运动、减速、停止
- 触摸、运动、减速、回弹、停止
- 触摸、回弹、停止
上面的运动可以是任何形式,如旋转、平移、zoom 等运动形式。当然,在上面过程执行的过程中,如果有其他用户交互介入,会停止当前的过程,继而反馈用户新的触摸手势。AlloyTouch 正是为了解决这类问题而生。
特性
丰富的组件
选择组件、级联选择组件、轮播组件、全屏滚动组件、下拉刷新组件、上拉刷新任君选择
超小的尺寸
压缩之后6.84K, GZIP之后2.24K
简单的API
超级简单的API,一分钟入门。通过new直接创建对象的实例:
new PhyTouch(option)
流畅的效果
反复打磨的缓动函数和运动时间,给您极致的触摸反馈体验
容易扩展
高度抽象的逻辑设计让你可以轻松用户很多触摸反馈场景,不仅仅是滚动
优秀的贡献者
AlloyTeam团队会第一时间响应你的任何问题,任何意见和建议请让我们知道。
安装方法
npm install phy-touch
使用方法
var phyTouch = new PhyTouch({
touch:"#wrapper",//反馈触摸的dom
vertical: true,//不必需,默认是true代表监听竖直方向touch
target: target, //运动的对象
property: "translateY", //被运动的属性
min: 100, //不必需,运动属性的最小值
max: 2000, //不必需,滚动属性的最大值
sensitivity: 1,//不必需,触摸区域的灵敏度,默认值为1,可以为负数
factor: 1,//不必需,表示触摸位移运动位移与被运动属性映射关系,默认值是1
moveFactor: 1,//不必需,表示touchmove位移与被运动属性映射关系,默认值是1
step: 45,//用于校正到step的整数倍
bindSelf: false,
maxSpeed: 2, //不必需,触摸反馈的最大速度限制
value: 0,
change:function(value){ },
touchStart:function(evt, value){ },
touchMove:function(evt, value){ },
touchEnd:function(evt,value){ },
tap:function(evt, value){ },
pressMove:function(evt, value){ },
animationEnd:function(value){ } //运动结束
})
通过对象的实例可以自行运动DOM:
phyTouch.to(value, time, ease)
value
是必填项time
是非必填项,默认值是600ease
是非必填项,默认值是先加速后减速的运动函数,CSS版本默认值是cubic-bezier(0.1, 0.57, 0.1, 1)
通过对象的实例可以自行停止DOM运动:
phyTouch.stop()
比如上面是运动 target 的 translateY 属性,必须要 target 拥有 translateY 属性才能正常工作。 你可以使用 transformjs 赋予 dom 的快速 tranformation 能力。所以一般需要 AlloyTouch dom 元素的话,可以:
var target = document.querySelector("#scroller");
//给element注入transform属性
Transform(target,true);
new AlloyTouch({
...
...
示例 Mobile
- Pull To Refresh: http://alloyteam.github.io/PhyTouch/refresh/pull_refresh/
- QQ KanDian: http://alloyteam.github.io/PhyTouch//refresh/infinite/kandian.html
- Full Page Scroll : http://alloyteam.github.io/PhyTouch/full_page/
- Simple : http://alloyteam.github.io/PhyTouch/example/simple.html
- 3D : http://alloyteam.github.io/PhyTouch/example/3d.html
- Rotate : http://alloyteam.github.io/PhyTouch/example/rotate.html
- Carousel : http://alloyteam.github.io/PhyTouch/example/carousel.html
- Carousel2 : http://alloyteam.github.io/PhyTouch/example/carousel2.html
- Three.js : http://alloyteam.github.io/PhyTouch/example/threejs/
相关链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论