实现html元素跟随touchmove事件的event.touches[0].clientX移动
主要是使用了transform:translateX 实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0">
<title>newWaterChart</title>
<!--<link rel="stylesheet" href="css/newBarChart.css">-->
<style>
* {
padding:0;
margin:0;
-webkit-box-sizing: border-box;
}
.chart-wrap {
background-color: #7ecef4;
}
.chart-container {
width:120%;
height: 250px;
padding-top: 100px;
transform: translateX(-20px);
}
.chart-item {
width: 20px;
line-height: 120px;
display: inline-block;
border: 1px solid white;
border-radius: 10px;
}
.flex-wrap {
display: flex;justify-content: space-around;
}
.flex-item { }
.chart-wrap {
overflow: hidden;
}
</style>
</head>
<body>
<div class="chart-wrap">
<div class="chart-container flex-wrap">
<span class="chart-item flex-item">1</span>
<span class="chart-item flex-item">2</span>
<span class="chart-item flex-item">3</span>
<span class="chart-item flex-item">4</span>
<span class="chart-item flex-item">5</span>
<span class="chart-item flex-item">6</span>
<span class="chart-item flex-item">7</span>
<span class="chart-item flex-item">8</span>
<span class="chart-item flex-item">9</span>
<span class="chart-item flex-item">10</span>
<span class="chart-item flex-item">11</span>
<span class="chart-item flex-item">12</span>
</div>
</div> <script src="js/zepto.min.js"></script>
<!--<script src="js/newBarChart.js"></script>-->
<script>
$(function () {
var chartContanier = $(".chart-container");
var touchstartClientX,
touchmoveClientX,
translateX, //实时更新x轴偏移
shiftLen, //touchmoveClientX - touchstartClientX
originalTranslateX, //初始x轴偏移
flagMove = false; //是否触发了touchmove事件 //matrix(1, 0, 0, 1, -20, 0) ,第四个为原本偏移长度
originalTranslateX = parseInt(chartContanier.css("transform").split(",")[4]); chartContanier.on("touchstart", function (event) {
var event = event || window.event;
event.preventDefault(); if (shiftLen !== undefined && flagMove) {
originalTranslateX += shiftLen;
}
touchstartClientX = event.touches[0].clientX;
flagMove = false;
});
chartContanier.on("touchmove", function (event) {
var event = event || window.event;
event.preventDefault(); flagMove = true;
touchmoveClientX = event.touches[0].clientX;
shiftLen = touchmoveClientX - touchstartClientX;
translateX = originalTranslateX + shiftLen; chartContanier.css("transform", "translateX(" + translateX + "px)");
}); });
</script>
</body>
</html>
实现html元素跟随touchmove事件的event.touches[0].clientX移动的更多相关文章
- 关于如何获取移动端 touchmove 事件中真正触摸点下方的元素
移动端的touchstart, touchmove, touchend三个事件,点击元素并拖动时,获取到了touchmove事件, 但是event.touches[0].target所指向的元素却是t ...
- 移动端touchstart、touchmove事件的基本使用
在pc端,我们通常使用$(window).scroll()事件来监听元素的位置,来做一些入场动效,如: $(window).scroll(function(){ var panel3Move = do ...
- js进阶课程 12-9 jquery的事件对象event的方法有哪些?
js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...
- JavaScript事件属性event.target和currentTarget 属性的区别。
event.target 获取的是触发事件的标签元素 event.currentTarget 获取到的是发起事件的标签元素 一.事件属性:event.target target事件委托的定义:本来该自 ...
- WPF DragDrop事件元素跟随
前一段时间项目里面要实现一个鼠标拖动一个元素到另外一个元素上面并且赋值的功能,由于要在surface上运行,拖动的时候手指会挡住系统默认的拖动图标,导致用户意识不到自己是不是在拖动着东西,所以要解决这 ...
- event.target 属性返回哪个 DOM 元素触发了事件。
<ul> <li>list <strong>item 1</strong></li> <li><span>list ...
- JavaScript:事件对象Event和冒泡
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 绑定事件的两种方式 我们在上一篇文章中已经讲过事件的概念.这里讲一下注册 ...
- javaScript动画3 事件对象event onmousemove
事件对象的获取(event的获取) var event = event || window.event;(主要用这种) screenX.pageX和clientX的区别 PageY/pageX: 鼠标 ...
- js进阶 12-3 如何实现元素跟随鼠标移动
js进阶 12-3 如何实现元素跟随鼠标移动 一.总结 一句话总结:获取鼠标位置,将鼠标位置设置为元素偏移即可. 1.用什么事件获取鼠标位置? 用mousemove可以获取鼠标移动的时候的位置 $(d ...
随机推荐
- Linux系统下快速删除某个目录下大量文件
不管是哪个操作系统,同一级目录存在太多的文件都是一件可怕的事情,不管是读取还是删除的时候. 一旦这种不幸的事情发生在你身上,而又不能完全把整个目录删掉怎么办呢? 你可以用 rm -f *.log 但是 ...
- angularJs项目实战!04:angularjs的性能问题
上一篇文章中我花了很多口舌去介绍angularjs是一个中型框架,面对大型应用时少不了第三方类库的配合.而我的核心议题是:如何以angularjs的思路使用其他类库,这里jquery是最好的例子了,谁 ...
- 转:Raspberry Pi(树莓派)试用小记
近期入手一树莓派卡片机,体验了一下它的强大,写篇报告,推广一下哈! 机器截图: 基础参数: CPU:700 MHz, ARM11 内存:512M(还有一种是256M的) 支持GPU加速(高清视频无压力 ...
- Linux里面怎样修改主机名
第一步:hostname 修改后的主机名 第二步:修改/etc/sysconfig/network中的hostname第三步:修改/etc/hosts文件 示例: 我机器现在的主机名是pc,想修改成t ...
- QT的文本加密方法(寒山居士)
http://blog.csdn.net/esonpo/article/details/12746315http://blog.csdn.net/esonpo/article/details/1174 ...
- ASP.NET MVC – 关于Action返回结果类型的事儿(上)
原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一. ASP.NET MVC 1.0 Result 几何? Action的 ...
- 2015第29周五AOP
AOP使用场景 AOP用来封装横切关注点,具体可以在下面的场景中使用: Authentication 权限 Caching 缓存 Context passing 内容传递 Error handling ...
- java 自制类加载器的简单实现
package com.xiaomo.reflex; import java.io.File; import java.io.FileInputStream; import java.io.IOExc ...
- memcached学习——分布式算法(Consistant hash + 虚拟节点)(三)
1.取余算法 优点:数据分布均匀缺点:当服务器动态的添加.删除节点或者某台server down掉,会导致命中率超大幅度下降,甚至导致服务不可用 2.Consistant Hash算法:一致性哈希算法 ...
- spring中获取Bean
在测试类中我们获取已经装配给容器的Bean的方法是通过ApplicationContext,即 ApplicationContext ac=new ClassPathXmlApplicationCon ...