Web里的人机交互之鼠标篇

不知道为何计算机用户大部分喜欢鼠标点击,最近想掰弄一下可视化,放大平移选中拖动一下子交杂在一起,就晕了。

网上竟然还找不到比较好用的库,那就自己动手丰衣足食吧。

实现的目标是:

支持鼠标长按键(比如按住一个圆一秒表示选中);

支持鼠标手势,再加一下模式识别的库都可以自己弄手写板了;

支持手机上加载页面时将手指事件转化为鼠标时事件;

支持手机上几个指头抓起或撑开的动作(比如缩小或放大一个区域);

支持单击,双击乃至多次点击;

支持鼠标拖拽后事件;

先上repo吧:https://github.com/dna2github/petalJS/tree/master/visualization

modules.js就是自己写了个动态加载javascript文件的脚本,这样以后有ACL控制好加载不同js。原理是:用jQuery创建一个<script>元素插入页面里,然后运行里面自带的init函数。

interactions.js看代码就好,index.html是一个小例子,有些小点在这里记录一下:

1 互交会注册一些事件到各种基本鼠标事件上,比如click, mousemove, mousedown等,然后所有的新事件在此上层封装。也就是interactions.js暴露出来的单击双击都是和浏览器原带的事件层不在同一个次元了。

2 互交代码中,会使用定时器判断是否触发一个事件,比如长按一个元素2s以后触发hold事件。当然,hold时间长短可以使用时通过interaction.config().hold.last动态调整。

3 gesture有两种模式,relative模式是判断鼠标和上一次位置的差距,大于阀值就记录一个新的坐标;absolute模式是将元素划分为方形小格,鼠标从一格到另一格会被记录为新坐标。

4 手机多个手指抓去实现苹果的pad功能还是蛮有意思的,就是要注意浏览器里放x个手指在屏幕上抓是可以触发事件的,加一个手指也会触发事件,但是奇怪的是提起一个手指再抓就不触发事件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值