实现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 ...
随机推荐
- 用c++11打造类似于python的range
python中的range函数表示一个连续的有序序列,range使用起来很方便,因为在定义时就隐含了初始化过程,因为只需要给begin()和end()或者仅仅一个end(),就能表示一个连续的序列.还 ...
- 使用C#版本GDAL读取复数图像
GDAL的C#版本虽然在很多算法接口没有导出,但是在读写数据中的接口基本上都是完全导出了.使用ReadRaster和WriteRaster方法来进行读写,同时对这两个方法进行了重载,对于常用的数据类型 ...
- 转:pthread_detach()函数
创建一个线程默认的状态是joinable. 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码). 所以创建线程者应该调 ...
- AndroidManifest.xml 文件里面的内容介绍
<?xml version="1.0" encoding="utf-8"?> <!--package 包表示整个java应用程序的主要包名,而 ...
- /usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback
[root@frontend01 yum.repos.d]# cd /etc/yum.repos.d;wget http://rpms.adiscon.com/v8-stable/rsyslog.re ...
- Misha and Changing Handles
Description Misha hacked the Codeforces site. Then he decided to let all the users change their hand ...
- Hadoop2.4.1 使用MapReduce简单的数据清洗
package com.bank.service; import java.io.IOException;import java.text.ParseException;import java.tex ...
- hadoop2.2.0 MapReduce求和并排序
javabean必须实现WritableComparable接口,并实现该接口的序列化,反序列话和比较方法 package com.my.hadoop.mapreduce.sort; import j ...
- nutch和solr集成
Linux下的Nutch和solr集成 3.1.Nutch安装 l 解压 tar -zxvf apache-nutch-1.4-bin.tar.gz l 终端下cd到目录 apache-nutch- ...
- 如何使用深度学习破解验证码 keras 连续验证码
在实现网络爬虫的过程中,验证码的出现总是会阻碍爬虫的工作.本期介绍一种利用深度神经网络来实现的端到端的验证码识别方法.通过本方法,可以在不切割图片.不做模板匹配的情况下实现精度超过90%的识别结果. ...