先给大家展示下效果图,感觉还不错请参考实现代码:
使用技术:vue2.0 webpack vue-touch 一些简单的javascript;
(注意:vue-touch 使用的是2.0.0版本 需要与vue2.0.0兼容)
vue-touch(地址:https://github.com/vuejs/vue-touch 注意是next 分支)
左侧导航可滑动(右侧视图窗因为和左逻辑一样 就没写)
var VueTouch = require('vue-touch')
Lib.Vue.use(VueTouch, {name: 'v-touch'})
通过npm 安装后vuetouch 后引入
我这里Lib,是我的一个方法 你也可以 直接Vue.use()引用
{name:'v-touch'}的作用 声明一个以vue-touch的标签
然后 在html内写一个 <vue-touch></vue-touch>就可以,当然后面我们要写入方法;
附:vue-touch方法
因为vue-touch其实封装了 hammer.js的方法 其实我们这里介绍的也就是他几个事件;详情可以搜索 hammer.js的文档;
hammer.js主要针对触屏的6大事件进行监听。如下图所示:
1、 Pan事件:在指定的dom区域内,一个手指放下并移动事件,即触屏中的拖动事件。这个事件在屏触开发中比较常用,如:左拖动、右拖动等,如手要上使用QQ时向右滑动出现功能菜单的效果。该事件还可以分别对以下事件进行监听并处理:
Panstart:拖动开始、Panmove:拖动过程、Panend:拖动结束、Pancancel:拖动取消、Panleft:向左拖动、Panright:向右拖动、Panup:向上拖动、Pandown:向下拖动
2、 Pinch事件:在指定的dom区域内,两个手指(默认为两个手指,多指触控需要单独设置)或多个手指相对(越来越近)移动或相向(越来越远)移动时事件。该事件事以分别对以下事件进行监听并处理:
Pinchstart:多点触控开始、Pinchmove:多点触控过程、Pinchend:多点触控结束、Pinchcancel:多点触控取消、Pinchin:多点触控时两手指距离越来越近、Pinchout:多点触控时两手指距离越来越远
3、 Press事件:在指定的dom区域内触屏版本的点击事件,这个事件相当于PC端的Click事件,该不能包含任何的移动,最小按压时间为500毫秒,常用于我们在手机上用的“复制、粘贴”等功能。该事件分别对以下事件进行监听并处理:
Pressup:点击事件离开时触发
4、 Rotate事件:在指定的dom区域内,当两个手指或更多手指成圆型旋转时触发(就像两个手指拧螺丝一样)。该事件分别对以下事件进行监听并处理:
Rotatestart:旋转开始、Rotatemove:旋转过程、Rotateend:旋转结束、Rotatecancel:旋转取消
5、 Swipe事件:在指定的dom区域内,一个手指快速的在触屏上滑动。即我们平时用到最多的滑动事件。
Swipeleft:向左滑动、Swiperight:向右滑动、Swipeup:向上滑动、Swipedown:向下滑动
6、Tap事件:在指定的dom区域内,一个手指轻拍或点击时触发该事件(类似PC端的click)。该事件最大点击时间为250毫秒,如果超过250毫秒则按Press事件进行处理。
(以上作者毫无节奏的摘抄一下,其实我也是费好大劲搜索的呀)
这里注意swipe这个方法;我们不需要因为这个滑动和我们需要的滑动是不一样的;
Panstart 是我们需要的;
展示一下 div 代码层;
<v-touch class="ul" v-on:pandown="onPanStart" //向下滑动 v-on:panmove="onPanmove" //滑动结束 v-on:panup="onPandup"> //向上滑动 </v-touch>
注意:也可以进行 事件的限制 用户多长时间可以执行
//我没用到这句
v-bind:pan-options="{ direction: 'panup', threshold: 100 }">
首先定一个 公共变量
//省去一些 代码
var lefthe = 0; //检测滑动的位置
onPanStart:function(data)
{
this.positionjson.transition=''
console.log(data)
var y = data.deltaY; //事件执行 所滑动的距离
lefthe = y + this.lefthe; //滑动的距离 记录到 lefthe 方便下次执行
console.log(lefthe)
if(lefthe >=50)
{
//限制 不能一直往上拉 拉到宇宙呢?我这里是写死的
lefthe = 0;
//回弹效果 在 滑动结束后 执行
return
}else{
}
this.positionjson.top = lefthe +'px';
},
滑动结束 事件
onPanend:function(data)
{
if(lefthe ==0)
{
console.log('现在是0')
this.positionjson.top = lefthe +'px';
//滑动结束 执行 一些事件 lefthe 0 的时候其实也就是下拉到顶的过程
this.positionjson.transition='0.2s ease 0s'
}else{
}
this.lefthe = lefthe;
},
//上拉代码块
onPandup:function(data)
{
var domul =document.getElementById('domul');
this.positionjson.transition=''
var y = data.deltaY; //下拉的距离
var boxheight = this.boxheight; //视图高度 也就是分辨率
var liheight = document.getElementById('libox').clientHeight; //左侧每个li的高度
console.log(liheight+'元素的高')
var zongheight = this.navapi.list.length * 70; //就能得出li父盒子高度
var bottomheight = -(zongheight - boxheight) + -100; //计算下拉到 滑动盒子的高度 - 视图高度 =上拉到底的位置
if(lefthe <= bottomheight)
{
// console.log('到底啦啦啦啦啦')
return;
}else{}
lefthe = y + this.lefthe;
this.positionjson.top = lefthe +'px';
},
以上所述是小编给大家介绍的vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# vue
# touch实现移动端左右导航
# vue如何实现左右滑动tab(vue-touch)
# vue vue-touch移动端手势详解
# 使用vue-touch报priority错误的解决
# vue2.0移动端滑动事件vue-touch的实例代码
# vue中如何使用vue-touch插件
# 拖动
# 多点
# 触控
# 时间为
# 拉到
# 小编
# 越来越近
# 啦啦
# 的是
# 几个
# 就像
# 是他
# 还可以
# 就能
# 也就
# 多个
# 最多
# 在此
# 不需要
# 就没
相关文章:
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
Swift中swift中的switch 语句
建站主机选虚拟主机还是云服务器更好?
如何选购建站域名与空间?自助平台全解析
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
已有域名和空间如何快速搭建网站?
,制作一个手机app网站要多少钱?
c# 在ASP.NET Core中管理和取消后台任务
个人网站制作流程图片大全,个人网站如何注销?
如何快速搭建二级域名独立网站?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
建站之星在线版空间:自助建站+智能模板一键生成方案
免费网站制作appp,免费制作app哪个平台好?
建站主机与虚拟主机有何区别?如何选择最优方案?
小型网站制作HTML,*游戏网站怎么搭建?
如何选择域名并搭建高效网站?
建站之星如何优化SEO以实现高效排名?
网站制作需要会哪些技术,建立一个网站要花费多少?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
建站主机解析:虚拟主机配置与服务器选择指南
无锡营销型网站制作公司,无锡网选车牌流程?
如何快速生成橙子建站落地页链接?
如何挑选优质建站一级代理提升网站排名?
北京企业网站设计制作公司,北京铁路集团官方网站?
学校建站服务器如何选型才能满足性能需求?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
郑州企业网站制作公司,郑州招聘网站有哪些?
如何在建站之星网店版论坛获取技术支持?
如何选择适配移动端的WAP自助建站平台?
深入理解Android中的xmlns:tools属性
香港服务器选型指南:免备案配置与高效建站方案解析
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
红河网站制作公司,红河事业单位身份证如何上传?
如何在云主机上快速搭建多站点网站?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
网站网页制作专业公司,怎样制作自己的网页?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
香港服务器WordPress建站指南:SEO优化与高效部署策略
网站制作公司排行榜,抖音怎样做个人官方网站
c# 在高并发下使用反射发射(Reflection.Emit)的性能
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何快速生成可下载的建站源码工具?
香港服务器租用费用高吗?如何避免常见误区?
如何通过免费商城建站系统源码自定义网站主题与功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。