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 ...
随机推荐
- 0927CSP-S模拟测试赛后总结
84pts rank28 经历了一个阶段的持续低迷,终于回到自己之前的位置了啊. 尽管依旧不是太靠上,但是还是证明了我的努力. 宿舍三人的风水轮流转之谈终究只是戏言和巧合.嘟嘟和Lockey都进第一机 ...
- C++函数调用原理理解
空程序: int main() { 00411360 push ebp ;压入ebp 00411361 mov ebp,esp ;ebp = es ...
- service sshd start启动失败,Badly formatted port number.
在做xhell学习的时候,把端口号修改了,后面忘记修改回 来,导致 [root@MyRoth 桌面]# service sshd start 正在启动 sshd:/etc/ssh/sshd_confi ...
- Spring的refresh()方法相关异常
如果是经常使用Spring,特别有自己新建ApplicationContext对象的经历的人,肯定见过这么几条异常消息:1.LifecycleProcessor not initialized - c ...
- day 53 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- IDEA 安装lombok及使用
1.File-Settings-Plugins-Brows Repositories-输入lombok-install 2.重启idea 3.添加maven依赖 <dependency> ...
- virtualbox导入winXP系统OVA文件重启
1,开启虚拟机 2,按f8进入安全模式,然后修改注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Processor HKEY_LOC ...
- 确认(confirm 消息对话框)语法:confirm(str); 消息对话框通常用于允许用户做选择的动作,如:“你对吗?”等。弹出对话框(包括一个确定按钮和一个取消按钮)
确认(confirm 消息对话框) confirm 消息对话框通常用于允许用户做选择的动作,如:"你对吗?"等.弹出对话框(包括一个确定按钮和一个取消按钮). 语法: confir ...
- ps axu 参数说明
问题:1.ps axu 看到进程的time不清楚什么意思 ru: resin 31507 0.2 1.3 3569452 98340 ? Sl Jul28 7:11 / ...
- 跳过爱奇艺优酷vip
1.google chrome浏览器 2.下载插件安装 Tampermonkey https://pan.baidu.com/s/1qvRQD2UO6gPHogjtSUBwUw 将 ...