html

<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<style>
.demo-box {
width: 300px;
height: 300px;
overflow: hidden;
position: relative;
} .demo-box img {
height: 500px;
width: 1900px;
position: absolute;
margin-left: -950px;
pointer-events: none;
margin-top: -220px;
left: 50%;
top: 50%;
max-width: none;
} .demo-box img.active {
display: block;
} .demo-box .page-num {
position: absolute;
bottom: 5px;
left: 50%;
margin-left: -20px;
color: white;
z-index: 999;
background: rgba(170, 170, 170, 0.5);
padding: 3px;
border-radius: 5px;
border: 1px solid black;
pointer-events: none;
} .page-num .active {
color: red;
} .demo-box .page-num {
color: white;
pointer-events: none;
} .demo img {
display: inline-block;
} .box img {
display: none;
} .demo-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(70, 70, 70, 0.8);
display: none;
} .demo-overlay img {
width: 50px;
height: 50px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -25px;
margin-top: -25px;
}
</style>
</head> <body class="homepage">
<div class="pan demo-box demo">
<img src="img/box.png" />
</div>
<br />
<br />
<br />
<br />
<div class="pinch demo-box demo">
<img src="img/box.png" />
</div>
<br />
<br />
<br />
<br />
<div class="rotate demo-box demo">
<img src="img/box.png" />
</div>
<br />
<br />
<br />
<br />
<div class="swipe demo-box box">
<img src="img/xsqy.png" class="active" />
<img src="img/jfsc.png" />
<img src="img/fx.png" />
<div class="page-num">
<span class="active">1</span>
<span class="">2</span>
<span class="">3</span>
</div>
</div>
<br />
<br />
<br />
<br />
<div class="tap demo-box box">
<img src="img/xsqy.png" class="active" />
<img src="img/jfsc.png" />
<img src="img/fx.png" />
<div class="page-num">
<span class="active">1</span>
<span class="">2</span>
<span class="">3</span>
</div>
</div>
<br />
<br />
<br />
<br />
<div class="press demo-box demo">
<img src="img/box.png" />
<div class="demo-overlay">
<img src="img/shouhuodizhicheckz.png">
</div>
</div>
</body>
<script type="text/javascript" src="js/jquery.min.js"></script> //自行下载
<script type="text/javascript" src="js/hammer.js"></script> //自行下载
<script type="text/javascript" src="js/hammer-index.js"></script> //以下代码 </html>

hammer-index.js

$(function() {
(function() {
var img, margin;
new Hammer($(".pan")[0], {
domEvents: true
});
$(".pan").on("panstart", function(e) {
img = $(".pan img");
margin = parseInt(img.css("margin-left"), 10);
});
$(".pan").on("pan", function(e) {
var delta = margin + e.originalEvent.gesture.deltaX;
console.log(delta);
if(delta >= -1750 && delta <= -150) {
img.css({
"margin-left": margin + e.originalEvent.gesture.deltaX
});
}
});
})();
// pinch
(function() {
var ham = new Hammer($(".pinch")[0], {
domEvents: true
});
var width = $(window).width();
var height = $(window).height();
var left = 950;
var top = 220;
ham.get('pinch').set({
enable: true
});
$(".pinch").on("pinch", function(e) {
console.log("pinch");
if(width * e.originalEvent.gesture.scale >= 300) {
$(this).find("img").css({
width: width * e.originalEvent.gesture.scale,
"margin-left": -left * e.originalEvent.gesture.scale,
height: height * e.originalEvent.gesture.scale,
"margin-top": -top * e.originalEvent.gesture.scale
});
}
console.log(e.originalEvent.gesture.scale);
});
$(".pinch").on("pinchend", function(e) {
width = width * e.originalEvent.gesture.scale;
height = height * e.originalEvent.gesture.scale;
left = left * e.originalEvent.gesture.scale;
top = top * e.originalEvent.gesture.scale;
console.log(width);
});
})(); // rotate
(function() {
var ham = new Hammer($(".rotate")[0], {
domEvents: true
});
var liveScale = 1;
var currentRotation = 0; ham.get('rotate').set({
enable: true
});
$(".rotate").on("rotate", function(e) {
alert(1)
var rotation = currentRotation + Math.round(liveScale * e.originalEvent.gesture.rotation);
$(this).find("img").css("transform", "rotate( " + rotation + "deg)");
});
$(".rotate").on("rotateend", function(e) {
currentRotation += Math.round(e.originalEvent.gesture.rotation);
});
})(); (function() {
new Hammer($(".swipe")[0], {
domEvents: true
});
var current = 0;
var imgs = $(".demo-box.swipe img");
var pages = $(".swipe .page-num span");
$(".swipe").on("swipeleft", function(e) {
if(imgs[current + 1]) {
imgs.removeClass("active");
imgs.eq(++current).addClass("active");
pages.removeClass("active");
pages.eq(current).addClass("active");
}
});
$(".swipe").on("swiperight", function(e) {
if(imgs[current - 1]) {
imgs.removeClass("active");
imgs.eq(--current).addClass("active");
pages.removeClass("active");
pages.eq(current).addClass("active");
}
});
})(); // tap
(function() {
new Hammer($(".tap")[0], {
domEvents: true
});
var current = 0;
var imgs = $(".demo-box.tap img");
var pages = $(".tap .page-num span");
$(".tap").on("tap", function(e) {
console.log("tap");
if(imgs[current + 1]) {
current++;
} else {
current = 0;
}
console.log(current);
imgs.removeClass("active");
imgs.eq(current).addClass("active");
pages.removeClass("active");
pages.eq(current).addClass("active");
});
})(); // press
(function() {
new Hammer($(".press")[0], {
domEvents: true
});
$(".press").on("press", function(e) {
$(".demo-overlay").toggle();
});
})();
})

hammer.js方法总结(只做了一个简单的demo)的更多相关文章

  1. 通过Knockout.js + ASP.NET Web API构建一个简单的CRUD应用

    REFERENCE FROM : http://www.cnblogs.com/artech/archive/2012/07/04/Knockout-web-api.html 较之面向最终消费者的网站 ...

  2. 一个简单的demo学习Android远程Service(AIDL的使用)

    这是milo很早之前写在论坛上的一个帖子,现在整理出来,milo也复习一下一般来说Android 的四大组件都是运行在同一个进程中的,但远程Service运行在不同的进程里.这进程间的通信是使用了An ...

  3. MyBatis 学习记录1 一个简单的demo

    主题 最近(N个月前)clone了mybatis的源码..感觉相比于spring真的非常小...然后看了看代码觉得写得很精简...感觉我的写代码思路和这个框架比较相似(很难具体描述...就是相对来说比 ...

  4. JS 的execCommand 方法 做的一个简单富文本

    execCommand 当一个 HTML 文档切换到设计模式(designMode)时,文档对象暴露 execCommand 方法,该方法允许运行命令来操纵可编辑区域的内容.大多数命令影响文档的选择( ...

  5. 我做的一个websocket的demo(php server)

    notice: 通过命令行执行php文件  如 php -q c:\path\server.php 通过本地web服务器访问 http://127.0.0.1/websocket/index.php即 ...

  6. 如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)

    在任何一个编辑器中编写一个静态的Main方法,必须是静态且名为Main的方法,并将Main方法所在的类文件命名为yang.cs(这个名字随便命名),如图-1. 图-1 打开你的vs2013开发人员命令 ...

  7. 用if做了一个简单的猜拳游戏(做的不好还请指点,谢谢!)

    #include "stdio.h" #include "stdlib.h" #include "time.h" //随机函数的头文件 ma ...

  8. 用ios做的一个简单的记事本

    #import "ViewController.h" @interface ViewController ()@property (weak, nonatomic) IBOutle ...

  9. 使用extjs做的一个简单grid

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

随机推荐

  1. Flutter学习指南:UI布局和控件

    Flutter学习指南:UI布局和控件 - IT程序猿  https://www.itcodemonkey.com/article/11041.html

  2. upc组队赛1 闪闪发光 【优先队列】

    闪闪发光 题目描述 一所位于云南昆明的中医药本科院校--云南中医学院. 因为报考某专业的人数骤减,正面临着停招的危机. 其中有九名少女想到一条妙计--成为偶像, 只要她们成为偶像,学校的名气便会增加, ...

  3. SpringBoot 整合使用dubbo

    这里主要是按照teaey作者的spring-boot-starter-dubbo框架进行一些变化的使用 依赖包: <dependency> <groupId>com.aliba ...

  4. Unity3D学习笔记(三十四):Shader着色器(1)

    一.GPU:图形处理器,Graphics Processing Unit 显卡的处理器就是图形处理器.与CPU类似.   GPU和CPU的区别? 1.CPU主要是为了串行指令设计,GPU则是为了大规模 ...

  5. Linux---centos 配置网络

    Linux配置网络,有两种方式,一种是通过图像化的界面来配置网络IP,另一种方式是通过命令行来配置IP 1.第一种方式通过图形化的界面来配置IP 1.0修改之前的IP地址 1.1点击图片中的那个 网络 ...

  6. nginx,uwsgi,部署django,静态文件不生效问题

    打开浏览器,然后访问服务器,如果能够正常访问,并且页面链接可以跳转,但是页面却是乱的,那一定是nginx.conf里面的静态文件配置不正确, location /static/ {#expires 3 ...

  7. Oracle(限定查询2)

    3.2 对数据进行限定查询 在标准SQL之中定义了许多的运算符. 3.2.1.关系运算符 范例: 范例: 范例: 在使用关系运算符判断字符数据的时候注意大小写的编写问题.因为Oracle是区分大小写的 ...

  8. Oracle 12C ORA-65096: 公用用户名或角色名无效

    先说基本用法: 先按11G之前进行 conn / as sysdba; create user test identifed by test; ORA-65096: 公用用户名或角色名无效. 查官方文 ...

  9. leecode第七题(整数反转)

    题解给的思路: ; class Solution { public: int reverse(int x) { ;//如果这里还是int,会在判断前就被裁剪了,无法判断溢出 ; ) flag=; wh ...

  10. 手动增删windows 服务和dll函数

    ①注册windows服务 sc create "服务名AAA" binPath= "安装目录\AAA.exe" displayname= "服务显示名 ...