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 ...
随机推荐
- (转)自定义ClassLoader ----可以加载第三方jar包
package com.classloader.util; import java.io.IOException; import java.net.MalformedURLException; imp ...
- LightOJ-1234-Harmonic Number-调和级数+欧拉常数 / 直接打表
In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers ...
- PHP面向对象编程题(方法的实践)
<?php header('content-type:text/html;charset=utf-8'); /*设计一个peron类(有名字,年龄和蛋糕三个属性) 蛋糕一共1000块,是所有人共 ...
- Luogu P3802 小魔女帕琪(期望)
P3802 小魔女帕琪 题意 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组 ...
- JavaScript变量名与函数名的命名规范
JavaScrip变量名与函数名的命名规范严格遵循以下5条: (1)首字符必须是字母.下划线.$,后跟任意的字母.数字.下划线.$ (2)严格区分大小写 (3)不能使用系统的关键字和保留字 (4)命名 ...
- CodeForces - 27E
https://vjudge.net/problem/CodeForces-27E 求因子个数为n的最小的数dfs枚举质因子的幂 #include <iostream> #include ...
- HTML - 列表标签相关
<html> <head></head> <body> <!-- 有序列表 type属性(列表的序号以什么样的形式显示) : type = &qu ...
- 数据结构学习笔记_树(二叉搜索树,B-树,B+树,B*树)
一.查找二叉树(二叉搜索树BST) 1.查找二叉树的性质 1).所有非叶子结点至多拥有两个儿子(Left和Right): 2).所有结点存储一个关键字: 3).非叶子结点的左指针指向小于其关键字的子树 ...
- Zuul上传文件
对于1M以内的文件上传,无需任何处理,大文件10M以上需要为上传路径添加/zuul前缀,也可使用zuul.servlet-path自定义前缀 如果Zuul使用了Ribbon做负载均衡,那么对于超大的文 ...
- 关于iosselectjs插件设置同步值的操作实践
关于移动端选择器的插件选择百度可以搜到很多,之前用过iosselect.js(https://github.com/zhoushengmufc/iosselect)感觉还不错,比mobiscorll. ...