不能遗忘移动端的手势事件

一直游离在pc端开发网站,当然也偶偶将网站制作成响应式的。

但是都没有研究过移动端的手势,上次在ctrip面试的一道题目如今还深深的刻在我的脑海中:

手机上的滑动事件该怎么处理,比如常见的app向右滑动出现菜单?

今天将hammer.js研究了一下,她主要是处理移动端的手势事件的,正如她的ad:Add touch gestures to your page.

我的思路:

1.当手指往右滑动时left块向右移动

2.当手指在红色的left向左滑动时left隐藏

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>web design of responsive</title>
  <style>
    .container{
    	position: relative;
    	width: 500px;
    	margin: 0 auto;
    }
    #myElement {
    background: silver;
    width: 500px;
    height: 500px;
    text-align: center;
    font: 30px/300px Helvetica, Arial, sans-serif;
    overflow: hidden;
  }
    .left,.right{
    	display: none;
    	width: 300px;
    	height: 500px;
      background-color: #f00;
    }
    .left{
    	position: absolute;
    	top: 0;
    	left:-300px;
    }
    .right{
    	position: absolute;
    	top: 0;
    	right:-300px;
    }
  </style>
<script src="https://hammerjs.github.io/dist/hammer.js"></script>
</head>
<body>
	<div class="container">
		<div id="myElement"></div>
		<div class="left" id="left">left</div>
		<div class="right" id="right">right</div>
	</div>
	<script>
	  var myElement = document.getElementById(‘myElement‘);
	  var left=document.getElementById(‘left‘),
    right=document.getElementById(‘right‘);

	  var mc = new Hammer(myElement);

	  var lt=new Hammer(left);
	  var rt=new Hammer(right);

	  mc.on("panleft",showright);
	  mc.on("panright",showleft);
	  function showleft(e){
      left.style.display="block";
	  	left.style.left="0";
      e.preventDefault();
	  }
	  function showright(e){
	  	right.style.display="block";
	  	right.style.right="0";
      e.preventDefalut();
	  }
	  //隐藏事件
	  lt.on("panleft",lefthide);
	  function lefthide(e){
	  	left.style.display="none";
	  	e.preventDefalut();
	  }	

	  rt.on("panright",righthide);
	  function righthide(e){
	  	right.style.display="none";
	  	e.preventDefalut();
	  }
	</script>
</body>
</html>
 

效果示例:http://2.liteng.sinaapp.com/javascript/hammer.html

主要的思想就是分两步走:

1.创建实例 var mc = new Hammer(myElement);

2.将示例绑定事件 mc.on("panleft/panright/tap/press",ftn);

学习官网:http://hammerjs.github.io/

原文地址:http://liteng.org/node/40

时间: 2024-10-13 08:08:24

不能遗忘移动端的手势事件的相关文章

移动端-模拟手势事件

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <style type="text/css"> .touch-box{ background-color: #444; color:whi

移动端手势事件 hammer.JS插件

一.引入hammer.JS 1.下载地址:http://download.csdn.net/detail/webxiaoma/9872249 2.官网地址:http://hammerjs.github.io/examples/ 3.CDN链接:http://hammerjs.github.io/dist/hammer.min.js 二.用法 1.首先我们先写一个出发事件的DOM元素 HTML: <style type="text/css"> html, body { wid

移动端交互手势详解及实现

一丶概述      如今移动端设备大行其道,前端也走进了移动的领域.在写移动端页面的交互效果的时候,我么难免要接触一些复杂的手势,而不仅仅像pc端那样简单的鼠标事件.手势实际上是一种输入模式.我们现在在直观意义上理解的人机交互是指人与机器之间的互动方式,这种互动方式经历了鼠标.物理硬件.屏幕触控.远距离的体感操作的逐步发展的过程. 二丶移动端手势事件      在浏览器中,为我们提供的手势并不算多,主要有: touchstart 当手指触摸屏幕时触发 touchmove 当手指在屏幕滑动时不断的

JS—触摸事件、手势事件

JS-触摸事件.手势事件 dbclick触屏设备不支持双击事件.双击浏览器窗口,会放大画面.可以通过在head标签内加上这么一行: <meta name="viewport" content="width=device-width, minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> 可以实现,我们编写的页面不会随着用的手势而放大缩小.关于meta标签,我还没有研究过,罪过啊. mouse在触屏上

JavaScript触摸与手势事件

处理Touch事件能让你跟踪用户的每一根手指的位置.你可以绑定以下四种Touch事件: 1.touchstart:  // 手指放到屏幕上的时候触发 2.touchmove:  // 手指在屏幕上移动的时候触发 3.touchend:  // 手指从屏幕上拿起的时候触发 4touchcancel:  // 系统取消touch事件的时候触发.至于系统什么时候会取消,不详 属性 1.client / clientY:// 触摸点相对于浏览器窗口viewport的位置 2.pageX / pageY:

移动端触摸相关事件touch、tap、swipe

一.事件定义及分类 1. click事件 单击事件,类似于PC端的click,但在移动端中,连续click的触发有200ms ~ 300ms的延迟 2. touch类事件 触摸事件,有touchstart touchmove touchend touchcancel 四种之分 touchstart:手指触摸到屏幕会触发 touchmove:当手指在屏幕上移动时,会触发 touchend:当手指离开屏幕时,会触发 touchcancel:可由系统进行的触发,比如手指触摸屏幕的时候,突然alert了

手势事件

1.基本的手势事件主要有如下三个方法: dispatchTouchEvent : 判断该事件是否需要下发.返回true表示需要下发给下级视图,返回false表示不需要下发(交给自身的onTouchEvent处理).但是否最终下发,还需根据onInterceptTouchEvent的拦截结果. onInterceptTouchEvent : 判断当前容器是否需要拦截该事件.返回true表示予以拦截(交给自身的onTouchEvent处理).不放给下级视图,返回false表示不拦截该事件. onTo

Qt for android触摸手势事件QGestureEvent

在触摸设备上可以使用Qt的手势事件 要激活手势事件,需要执行以下操作: 第一步,为QWidget控件注册手势事件 QList<Qt::GestureType> gestures; gestures << Qt::PanGesture; gestures << Qt::PinchGesture; gestures << Qt::SwipeGesture; gestures << Qt::TapGesture; gestures << Q

ionic 手势事件(滑动,拖拽,点击...)

ionic之AngularJS(十)——手势事件 Posted on 2015年12月23日 by cswisdomliu 长按 : on-hold 在屏幕同一位置按住超过500ms,将触发on-hold事件: 你可以在任何元素上使用这个指令挂接监听函数: <any on-hold=“…”>…</any> 示例代码: <body  ng-controller=”ezCtrl”><ion-header-bar class=”bar-positive”  on-hol