【插件】用hammer.js插件实现网页手势操作
2016-03-30 10:29
567 查看
在开发web app页面或者做平常的微信页面开发的时候我们一贯的鼠标事件是不现实的,我们需要实现手势触摸和touch事件,像我这样的菜鸟要自己写这些手势touch事件代码,目前还是能力有限^_^。
还好有大神们的插件,先做一个拿来主义者吧,这里使用的是hammer,为什么要选着hammer不选着jqm等等其他的呢,因为个人觉得我只需要手势touch,不需要其他的,hammer里面只有纯粹的手势实现代码。
看看效果
![](http://img.blog.csdn.net/20160330101830844)
所有使用方法都写到代码注释中了,就不在赘述了^_^
上代码
源码下载:http://pan.baidu.com/s/1dETFD65
还好有大神们的插件,先做一个拿来主义者吧,这里使用的是hammer,为什么要选着hammer不选着jqm等等其他的呢,因为个人觉得我只需要手势touch,不需要其他的,hammer里面只有纯粹的手势实现代码。
看看效果
所有使用方法都写到代码注释中了,就不在赘述了^_^
上代码
<!DOCTYPE html> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"> <script src="http://cdn.bootcss.com/jquery/3.0.0-beta1/jquery.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.6/hammer.min.js"></script> <title></title> <style type="text/css"> /*左边固定部分*/ #lt { position: absolute; top: 0px; left: -70px; width: 70px; text-align: center; } #lt div { line-height: 3em; color: #808080; border-bottom: 1px solid #D4D4D4; cursor: pointer; } /*被激活的tab样式*/ .curunt { line-height: 3em; color: #C0192A !important; border-left: 4px solid #C0192A; background: white; } /*右边自适应部分*/ #rt { position: absolute; top: 0px; left: 0px; width: 100%; right: 0; height: 100%; background: white; } /*左边tab添加手势滑动过度*/ #lt, #rt { transition: left 1s; -moz-transition: left 1s; -webkit-transition: left 1s; -o-transition: left 1s; } /*数据表格样式*/ .flexcss { width: 95%; font-size: 10pt; line-height: 3em; margin-left: 5%; } </style> </head> <body> <div id="lt"> <div class="curunt">白酒</div> <div>白酒</div> <div>白酒</div> <div>白酒</div> </div> <div id="rt"> <table class="flexcss"> <tr> <td colspan="3"> <h3>类型</h3> </td> </tr> <tr> <td>冰酒</td> <td>起泡酒</td> <td>干红葡萄酒</td> </tr> <tr> <td>冰酒</td> <td>起泡酒</td> <td>干红葡萄酒</td> </tr> <tr> <td>冰酒</td> <td>起泡酒</td> <td>干红葡萄酒</td> </tr> </table> <table class="flexcss"> <tr> <td colspan="3"> <h3>品牌</h3> </td> </tr> <tr> <td>马格普益乐</td> <td>马格普益乐</td> <td>干红葡萄酒</td> </tr> <tr> <td>马格普益乐</td> <td>马格普益乐</td> <td>干红葡萄酒</td> </tr> <tr> <td>马格普益乐</td> <td>马格普益乐</td> <td>干红葡萄酒</td> </tr> </table> </div> <script type="text/javascript"> //本页面暂未实现后台 //疑问联系【编码人】周杨 QQ1414294708 var e = window.event || e; //事件注册 function addListener(element, e, fn) { if (element.addEventListener) { element.addEventListener(e, fn, false); } else { element.attachEvent(e, fn); } } //加载手势库,判断左滑右滑 //container 是手势滑动区域,mc是讲区域加入手势监测管理,Swipe 是监测到滑动的手势 var container = document.getElementById('rt'), mc = new Hammer.Manager(container), Swipe = new Hammer.Swipe(); mc.add(Swipe); mc.on('swipeleft', function (e) { $("#lt").css("left", "-70px"); $("#rt").css("left", "0px"); }); mc.on('swiperight', function (e) { $("#lt").css("left", "0px"); $("#rt").css("left", "70px"); }); //tab切换 var lt = document.getElementById('lt').children; for (var i = 0; i < lt.length; i++) { addListener(lt[i], "click", function (e) { for (var i = 0; i < lt.length; i++) { var cild = $(e.target).parent().children()[i]; if (cild == e.target) { $(e.target).toggleClass("curunt"); } else { cild.className = ""; } } }); } </script> </body> </html>
源码下载:http://pan.baidu.com/s/1dETFD65
相关文章推荐
- 使用JSONP实现跨域通信
- JS 事件基础 高级拖拽
- JavaScript 不支持 indexof 该如何解决
- JavaScript系列:event.bubbles属性(并不是所有的事件都具有冒泡)
- 【JSP】jsp导出excel长数字不以科学计数法显示
- js字符串RTrim方法(right trim)
- JS、C#方法互相调用示例
- javascript设计模式(一)--面向对象
- js常用的几个验证
- JavaScript事件代理和委托(Delegation)
- Js经典实例收集
- JavaScript之深入理解闭包
- js去掉字符串空格
- js之规范代码写法
- js 几种类型的事件处理程序
- 【新人笔记16.3.30】JS--数组
- JS模块化编程(三)
- jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
- Extjs3.0拓展comboBox成comboBoxTree
- js中的函数易忽略的点小节