js鼠标手势,交互设计手势

  js鼠标手势,交互设计手势

  IE10中新增了对高级用户输入的识别支持。比如注册一个点击操作,就可以知道当前用户的点击是哪个设备,是手指点击、鼠标点击还是手写笔点击(所有平板设备都有手写笔)。

  canvasid= my canvas /canvas script

  my canvas . addevent listener( mspointer down ,MyBack,false);functionMyBack(e){

  alert(e . pointer type . tostring());

  }/script上面的代码能够识别出当前用户点击的是哪个设备,e.pointerType也通过回调方法做出判断。鼠标是4,手写笔是3,手指是2。至于1的值是什么样的设备,还有待研究。

  另外需要注意的是,你要在javascript中添加输入设备的标识,注册的方法事件略有不同。

  addEventListener添加的事件是MSPointerDown。

  但在IE10中,在不影响正常功能的前提下,在识别这类多台设备时优先处理手指点击。不过IE10不仅可以识别用户的输入设备,还支持很多高级手势。

  以下是IE10高级手势支持的演示。

  创建手势对象

  在你的网站中处理手势的第一步是实例化手势对象。

  var my gesture=new ms gesture();

  接下来,为手势提供一个目标元素。浏览器将为此元素触发一个手势事件。同时,这个元素也可以决定事件的坐标空间。

  elm=document . getelementbyid( some element );

  myGesture.target=elm

  elm . addevent listener( MSGestureChange ,handle gesture);

  最后,手势对象被告知在手势识别期间要处理哪些指针。

  elm . addevent listener( MSPointerDown ,function (evt) {

  //为手势识别添加当前鼠标、笔或触摸触点

  my gesture . add pointer(evt . pointerid);

  });

  注意:请不要忘记,您需要使用ms-ms-touch-action来配置元素,以防止它们执行默认的触摸操作(例如,平移和缩放),并为输入提供指针事件。

  处理手势事件一旦手势对象有了有效的目标,并且至少添加了一个指针,它就会开始触发手势事件。手势可分为两种:静态手势(例如,点击或按住)和动态手势(例如,捏、旋转和滑动)。

  点击是最基本的手势识别。当检测到单击时,将在手势对象的目标元素上触发MSGestureTap事件。与单击事件不同,单击手势只能在用户触摸、按下鼠标按钮或用手写笔触摸而不移动时触发。如果您想区分用户单击和拖动元素,这通常非常有用。

  长按手势是指用户用一个手指触摸屏幕,保持一会儿,抬起来不动的操作。在长按交互过程中,对于各种手势状态,会多次触发MSGestureHold事件:复制代码如下:

  element . addevent listener( MSGestureHold ,handle hold);

  功能手柄保持(evt) {

  if (evt.detail evt。MSGESTURE_FLAG_BEGIN) {

  //Begin表示手势的开始。对于保持手势,这意味着用户已经在某个位置保持了足够长的时间,如果手指抬起,手势将变成完全的按住。

  }

  if (evt.detail evt。MSGESTURE_FLAG_END) {

  //End表示手势的结束。

  }

  if (evt.detail evt。MSGESTURE_FLAG_CANCEL) {

  //Cancel表示用户开始了笔势,但取消了它。对于保持,这发生在用户在提起之前拖动时。该标志与结束标志一起发送,表示手势识别完成。

  }

  }

  动态手势(挤压、旋转、滑动和拖动)

  动态手势(例如,收缩或旋转)将以转换的形式报告,这与CSS 2D转换非常相似。动态手势可以触发三种事件:MSGestureStart、MSGestureChange(随着手势的继续重复触发)和MSGestureEnd。每个事件都包含缩放(收缩)、旋转、转换和速度等相关信息。

  由于动态手势以转换的形式报告,因此使用包含CSS 2D转换的女士手势来操作诸如照片或拼图等元素将变得十分轻松。例如,您可以通过下列方式启用缩放、旋转和拖动元素的操作:复制代码代码如下:

  目标元素。addevent侦听器( MSGestureChange ,操纵元素);

  功能操作元件(e) {

  //如果要禁用动态手势识别提供的内置惯性,请取消对以下代码的注释

  //if(e . detail==e . ms手势_标志_惯性)

  //返回;

  var m=新MSCSSMatrix(e . target。风格。转换);//获取元素的最新半铸钢钢性铸铁(Cast Semi-Steel)转换

  e。目标。样式。转换=m。translate(e.offsetX,e.offsetY) //将变换原点移动到手势中心下方。旋转(例如旋转* 180 /数学. PI) //应用旋转。缩放(电子秤)//应用缩放。translate(e.translationX,e.translationY) //应用翻译。translate(-e.offsetX,-e . offsety);//将变换原点向后移动

  }

  缩放和旋转等动态手势可支持鼠标操作,具体可通过在旋转鼠标滚轮的同时分别使用计算机的计算机的ctrl按键按键(控制键)或变化修饰键来实现。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • vue监听指定按钮加点击事件,vue按钮点击事件,vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
  • js鼠标触碰事件,js鼠标事件包括哪几种
  • js鼠标触碰事件,js鼠标事件包括哪几种,关于js中的鼠标事件总结
  • js鼠标拖动div,js 移动鼠标
  • js鼠标拖动div,js 移动鼠标,JS实现简单移动端鼠标拖拽
  • js怎么实现点击按钮图片切换,js鼠标点击按钮图片移动
  • js怎么实现点击按钮图片切换,js鼠标点击按钮图片移动,js鼠标点击图片切换效果代码分享
  • js小球跟随鼠标移动,js鼠标跟随特效
  • js小球跟随鼠标移动,js鼠标跟随特效,js实现鼠标跟随小游戏
  • jquery鼠标悬停二级菜单,jquery鼠标悬停按钮切换图片
  • jquery鼠标悬停二级菜单,jquery鼠标悬停按钮切换图片,jQuery实现鼠标悬停3d菜单展开动画效果
  • html鼠标特效代码,html鼠标特效
  • html鼠标特效代码,html鼠标特效,10个经典的网页鼠标特效代码
  • win7鼠标滚轮上下失灵,win7鼠标滚轮用不了
  • thinkpad usb口不能用 鼠标,thinkpad电脑怎么禁用触控
  • 留言与评论(共有 条评论)
       
    验证码: