移动 Web 触摸与运动解决方案 AlloyTouch 开源啦

传送门

Github地址:https://github.com/AlloyTeam/AlloyTouch

简介

AlloyTouch的本质是运动一个数字,把数字的物理变化映射到你想映射的任何属性上。所以带来了广泛的应用场景。不论实在应用、游戏、操作系统等许多层面,监听用户触摸,给用户真实的运动反馈是很常见的应用场景。如王者荣耀里,旋转用户角色,抽奖程序滚动转盘、页面滚动、局部滚动等。

上面的那些场景,都会使用到下面三种过程之一:

  • 触摸、运动、减速、停止
  • 触摸、运动、减速、回弹、停止
  • 触摸、回弹、停止

上面的运动可以是任何形式,如旋转、平移、zoom等运动形式。当然,在上面过程执行的过程中,如果有其他用户交互介入,会停止当前的过程,继而反馈用户新的触摸手势。AlloyTouch正是为了解决这类问题而生。同时做到了:

  • 极小的文件大小(不到300行代码)
  • 与页面布局无关
  • 运动属性无关,能运动对象字量(如{x:100})
  • 渲染无关的设计(dom、canvas、webgl、svg都能使用)
  • 真实的物理运动轨迹
  • 高效的运动方式
  • 极简的API设计

安装

npm install alloytouch

使用姿势

new AlloyTouch({
    touch:"#wrapper",//反馈触摸的dom
    target: target, //运动的对象
    property: "translateY",  //被运动的属性
    min: 100, //不必需,运动属性的最小值,越界会回弹
    max: 2000, //不必需,滚动属性的最大值,越界会回弹
    vertical: true,//不必需,默认是true代表监听竖直方向touch
    sensitivity: 1,//不必需,触摸区域的灵敏度,默认值为1,可以为负数
    factor: 1,//不必需,表示触摸位移与被运动属性映射关系,默认值是1
    step: 45,//不必需,用于校正到step的整数倍
    change:function(){  }, //不必需,属性改变的回调。alloytouch.css版本不支持该事件
    touchStart:function(value){  },
    touchMove:function(value){  },
    touchEnd:function(value){  },
    animationEnd:function(value){  } //运动结束
 })

比如上面是运动target的translateY属性,必须要target拥有translateY属性才能正常工作。
你可以使用transformjs赋予dom的快速tranformation能力。所以一般需要AlloyTouch dom元素的话,可以:

var target = document.querySelector("#scroller");
//给element注入transform属性
Transform(target,true);

new AlloyTouch({
...
...

功能演示



##在线Demo

##开始AlloyTouch吧
Github地址:https://github.com/AlloyTeam/AlloyTouch
欢迎issues:https://github.com/AlloyTeam/AlloyTouch/issues
我们会在第一时间响应你的意见和建议。

时间: 2024-11-09 18:21:53

移动 Web 触摸与运动解决方案 AlloyTouch 开源啦的相关文章

Nginx的Web缓存服务与新浪网的开源NCACHE模块(1)

Nginx的Web缓存服务与新浪网的开源NCACHE模块 什么是web缓存 Web缓存位于内容源web服务器和客户端之间,当用户访问一个 URL时,web缓存服务器回去后端web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,web缓存服务器直接输出内容给客户端,而不是像源服务器再次发送请求.web缓存降低了内容源web服务器.数据库的负载,减轻了网络延迟,提高了用户的响应速度,增强了用户体验. 最著名的还要数Squid Cache,其主要在Unix一类系统运行.

嵌入式开发-迅为4412开发板QT鼠标和触摸的问题解决方案

迅为4412开发板-QT鼠标和触摸的问题解决方案: 一. 背景 在使用迅为提供的QT4.7的时候,鼠标可以正常使用,有触摸但是触摸会出现问题.尤其是在左右滑动qt界面的时候,总是会出现往左滑动,画面急速往右走,然而往右滑动,画面急速的往左走. 在使用迅为提供的Qtopia4的时候,只能用触摸不能用鼠标. 二.解决办法 ① QT4.7系统 打开/bin/qt4 找到这句话: export QWS_MOUSE_PROTO='MouseMan:/dev/input/mice Tslib:/dev/in

.atitit.web 推送实现解决方案集合(3)----dwr3 Reverse Ajax

.atitit.web 推送实现解决方案集合(3)----dwr3 Reverse Ajax 1. 原理实现 1 2. Page  增加配置,增加回调函数dwr.engine.setActiveReverseAjax(true); 1 3. Web.xml增加配置 1 4. Java代码(page法,简单) 2 5. 推荐实现方式 attribute法.. 2 6. 参考::: 2 1. 原理实现 ScriptSession ::简单的一个page url管理一个scriptsession,这个

Nginx的Web缓存服务与新浪网的开源NCACHE模块

#Nginx的Web缓存服务与新浪网的开源NCACHE模块 ##什么是web缓存 Web缓存位于内容源web服务器和客户端之间,当用户访问一个 URL时,web缓存服务器回去后端web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,web缓存服务器直接输出内容给客户端,而不是像源服务器再次发送请求.web缓存降低了内容源web服务器.数据库的负载,减轻了网络延迟,提高了用户的响应速度,增强了用户体验. 最著名的还要数Squid Cache,其主要在Unix一类系统运

公司网络web服务器负载均衡解决方案

公司网络web服务器负载均衡解决方案 随着公司产品业务的推广发展壮大,对服务器的硬件性能.相应速度.服务稳定性.数据可靠性的要求越来越高.今后服务器的负载将难以承受所有的访问.从公司的实际情况,运营成本网络安全性考虑,排除使用价格昂贵的大型服务器.以及部署价格高昂的专用负载均衡设备. DNS轮询负载均衡解决方案虽然成本低廉但是安全性能不是很好,加上公司产品的特殊性需要用户验证的体系,在会话保持方面是一大缺陷,会话保持,如果是需要身份验证的网站,在不修改软件构架的情况下,这点是比较致命的,因为DN

NLB多WEB站点访问共享文件解决方案

在公司门户项目正式部署的时候,因BPM站点采用NLB集群部署方式,BPM站点有多个WEB前端服务器.流程都有上传附件功能,起初因没考虑服务器正式环境NLB的部署方式,只是简单的将所有附件保存在BPM WEB站点的Upload文件夹里.部署到正式环境后,发现上传附件是随机上传到某一台WEB前端服务器上. 起初为了解决多台WEB前端服务上的文件同步,只是简单的考虑文件同步工具.同步工具选择了GoogleSYN双向文件同步工具,这个工具非常好用,配置也很简单,解决了我们部署正式环境的问题. 文件同步工

微信发送amr文件导致web端无法显示解决方案

html5中有audio这样一个标签,这个标签支持3种格式,分别是wav.mp3.ogg格式,都是音频格式, 而且在不同的浏览器中还有不同的兼容性. 下面是主流的几个浏览器对它的支持性: 那么,问题来了,我们现在是微信上发送的语音文件(格式为amr)需要在浏览器上进行展示,结果由于audio标签并不支持amr格式的语音文件,就导致无法再浏览器上正常显示. 解决方案: 原理:该方案的原理是利用ffmpeg工具的转码功能将amr格式转换为MP3格式 使用方法:使用方需要做如下两个步骤: 1.在cla

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室 实战系列。开源啦!!!

自此系列博客开写以来,好多同学关心开源问题,之前由于网络问题,发布到Github上老是失败,今天终于在精简了好多无用的文件之后发布上去了. 注意:layim源代码并不开源,由于版权问题,请大家去官网了解详情,本人并非layui作者,原作者贤心.开源内容为 后台部分. 详情移步:ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室 实战系列(不断更新中) GitHub:https://github.com/fanpan26/LayIM_NetClient/ QQ交流群:1

Java Web乱码分析及解决方案

1.  什么是URL编码. URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上. 2.  URL编码规则. 每对name/value由&分开,每对来自表单的name/value用=分开.如果用户没有输入值的那个name依旧会出现不过就是没有值. URL编码是在字符ASCII码的十六进制数的前面加上%.例如\(她的十六进制数表示为5c)的URL编码就是%5c. 3.  简