touch滑动事件---简单小案例
html:
<!--导航栏头部-->
<div class="type_nav">
<ul class="clearfix " v-on:touchstart="touch($event,1)" v-on:touchmove="touch($event,2)" v-on:touchend="touch($event,3)">
<li v-for="(index,main) in mainList">
<div class="nav_con" >
<p>{{main.speciality_name}}</p>
<img v-bind:src="main.icon" alt=""/>
</div>
<span></span>
</li>
</ul>
<div class="right"></div>
</div>
vue-js:
data:{
startPosition:"", //触摸开始位置
endPosition:"", //触摸结束位置
deltaX:null, //滑动的距离
flag:null, //上次滑动的位置
is_click:false, //导航是否被点击
},
//移动端滑动事件
touch: function (e,type) {
var touch = e.touches[0];
//可移动最大宽度
var maxWidth = parseFloat($(".type_nav").css("width"))*0.95;
//隐藏小光标
$(".type_nav").find("span").css("display","none");
//判断触摸状态获取坐标
if(type == 1){
info_vue.startPosition = {
x: touch.pageX
};
}else if(type == 2){
info_vue.endPosition = {
x: touch.pageX
};
}
//判断结束坐标是否为空
if(info_vue.endPosition.x == undefined){
info_vue.deltaX = info_vue.flag;
}else{
info_vue.deltaX = (info_vue.endPosition.x - info_vue.startPosition.x) + info_vue.flag;
}
//判断是否点击向右滑动按钮
if(!info_vue.rightbtnClick){
//判断不能超出相应位置
if(info_vue.deltaX < 0 && info_vue.deltaX > -maxWidth) {
}else if(info_vue.deltaX > 0){
info_vue.deltaX = 0;
}else if(info_vue.deltaX < -maxWidth){
info_vue.deltaX = -maxWidth;
}
$(".type_nav").children("ul").css("left", info_vue.deltaX + "px");
}else{
//判断不能超出相应位置
if(info_vue.deltaX < maxWidth && info_vue.deltaX > 0) {
}else if(info_vue.deltaX > maxWidth){
info_vue.deltaX = maxWidth;
}else if(info_vue.deltaX <0){
info_vue.deltaX = 0;
}
$(".type_nav").children("ul").css("left", info_vue.deltaX-maxWidth + "px");
}
//离开触摸状态
if(type == 3){
info_vue.flag = info_vue.deltaX;
info_vue.endPosition = "";
}
},
效果图:

touch滑动事件---简单小案例的更多相关文章
- react框架实现点击事件计数小案例
下面将以一个小案例来讲解react的框架的一般应用,重点内容在代码段都有详细的解释,希望对大家有帮助 代码块: 代码块: import React from 'react'; import React ...
- 基于Pytorch的简单小案例
神经网络的理论知识不是本文讨论的重点,假设读者们都是已经了解RNN的基本概念,并希望能用一些框架做一些简单的实现.这里推荐神经网络必读书目:邱锡鹏<神经网络与深度学习>.本文基于Pytor ...
- 移动端touch滑动事件监听
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Angular.js路由 简单小案例
代码案例: <html> <head> <meta charset="utf-8"> <title>AngularJS 路由实例&l ...
- angular前端框架简单小案例
一.angular表达式 <head> <meta charset="UTF-8"> <title>Title</title> &l ...
- 关于js中的事件委托小案例
需求:页面上有一个按钮,和一个空的ul,要求点击按钮,会给ul中动态添加li元素,然后,点击动态添加的元素,在控制台上输出,这是第几个元素 <ul> </ul> <but ...
- Vuex-全局状态管理【简单小案例】
前言: Vuex个人见解: 1.state :所有组件共享.共用的数据.理解为不是一个全局变量,不能直接访问以及操作它.2.mutations : 如何操作 state 呢?需要有一个能操作state ...
- 移动端上下滑动事件之--坑爹的touch.js
下面的方法,不知道是操作方法不对还是啥. 在 zepto.js 里面加那一段代码不起作用 百度的 touch.js 是可以用的,但是使用方式 和 zepto有点不一样. 解决方案:参照这个链接地址 ...
- 移动端上下滑动事件之--坑爹的touch.js
原文 http://blog.csdn.net/minidrupal/article/details/39611605 移动端页面的盛行,微信的便利的页面推广等等,让越来越多的css3效果和htm ...
随机推荐
- docker-compose安装及docker-compose.yml详解
1.下载安装 [root@cx-- ~]# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-comp ...
- LUOGU P2294 [HNOI2005]狡猾的商人(差分约束)
[传送门] (https://www.luogu.org/problemnew/show/P2294) 解题思路 差分约束.先总结一下差分约束,差分约束就是解决一堆不等式混在一起,左边是差的形式,右边 ...
- java读写属性配置文件
package readproperties; import java.io.FileInputStream; import java.io.IOException; import java.io.I ...
- Team Train Recorder 2.0
Bubble Cup 12 - Finals Online Mirror, unrated, Div. 1 2019/10/4, solved 4/9, upsolved
- 半宿了,仿写了个CList模板类,留着以后用吧
难题还是很多阿.模板类.本身就是个问题 要考虑到各个方面,哎.问题很多 比如,如果模板类型为数值型.指针型数据,倒也可以 但是如果模板类型为聚合型,就麻烦了,判断.比较,什么乱七八糟的,都麻烦了. 哎 ...
- 解决jquery ajax在跨域访问post请求的时候,ie9以下无效(包括ie9)的问题
最近在做项目的时候遇到一个问题,就是跨域请求ajax的时候ie9以下的浏览器不可以访问,直接执行error里面的代码,但是也不报错,就上网查了查,发现了一个很好用的方法,在这里记录一下,也希望可以帮到 ...
- java自定义注解代码练习
/** * 自定义注解:校验非空字段 * */ @Documented @Inherited // 接口.类.枚举.注解 @Target(ElementType.FIELD) //只是在运行时通过反射 ...
- python中遇到的问题:IndentationError: unexpected indent
在Python中写下列代码的时候,出现错误:IndentationError: unexpected indent 分析:IndentationError是缩进的错误,查看源代码发现names开始的这 ...
- Windows的进程间通信
对于任何一个现代的操作系统,进程间通信都是其系统结构的一个重要组成部分.而说到Windows的进程(线程)间通信,那就要看是在什么意义上说了.因为正如"Windows的跨进程操作" ...
- Android基础控件ScrollView滚动条的使用
1.简介 ScrollView是一个FrameLayout的容器,不过在他的基础上添加了滚动,允许显示的比实际多的内容!另外,只能够往里面放置一个子元素,可以是单一的组件,又或者一个布局包裹着的复杂的 ...