Vue 实现移动端在线选座功能(支持miniMap,支持缩放)
Vue 实现在线选座功能(支持miniMap,支持缩放)
- 前言
- 一、功能介绍
- 二、选座页面效果
- 三、实现原理
- 布局设计方面
- 交互实现方面
- 四、在线例子
- 总结
前言
前段时间写了一个在线选座功能,现在分享一下。
纯Dom方式实现,包括miniMap,代码没怎么优化,主要提供实现思路。
一、功能介绍
- 支持选座区域划分
- 支持缩放选座区域大小(可配置)
- 支持拖拽选择区域
- 支持miniMap 拖拽
- 通过数据支持简单编辑座位布局
二、选座页面效果
分别是 正常,缩小,放大后效果
三、实现原理
布局设计方面
1.一行一行渲染座位,通过行对象上的 colSplits
确定行布局,根据area
渲染区域颜色
rowArr: [{area: "VIP席"colSplits: [4,6,4]colTotal: 14cols: Array(16)
}]
2.根据 colSplits
处理处 cols
数据,就是一行中,每列数据
cols: [{area: "VIP席"checked: falsecol: 4disabled: falseid: 7price: 10roomId: 5row: 2seatId: 54solded: falsestatus: "FREE"
}]
3.根据 status
判断座位状态,根据checked
判断座位选中状态以及样式,
row
与col
分别是几行几列
4.间距为特殊的行数据
与列数据
(这里不同区域有间距),通过isSide
判断边界
rowArr: [{area: "VIP席"isSide: truenumber: {value: 110}
}]cols: [{isSide: true
}]
交互实现方面
1.左上角小地图同样和选座区域一样实现,通过 transition: scale()
缩放至合适大小。
2.选座区域拖拽通过固定容器大小,撑开内部内容大小,使固定容器出现滚动条(通过样式隐藏滚动条)。
3.拖拽(移动端就是触发滚动事件)获取滚动上下距离,同比与小地图大小比,计算红框范围(可选范围)。
4.拖拽小地图红框(可选范围),计算范围后直接设置固定容器的 滚动值
即可,滚动会触发 上面第三条。
5.缩放通过 模拟两指距离远近,获取值后通过设置 样式 zoom: ?
改变大小。
下面有在线例子,可以对查看
四、在线例子
在线Demo 查看,可编辑示例(缩放效果在移动端查看,两指缩放)
总结
选座功能样式与逻辑交互关联偏多,样式有差异可能造成呈现效果有偏差。
还有以上例子原本博主是做小程序嵌入H5
的,在模拟事件时,设置了原有对象属性,
在IOS
的微信小程序或报错提示内部对象不可设置属性。
本来不想自己写选座的,但是网上搜索H5
版选座都不支持miniMap
,以至于自己动手写了。
以上信息如有疏漏或错误,欢迎指正,谢谢。
Vue 实现移动端在线选座功能(支持miniMap,支持缩放)相关推荐
- 视频教程-react电影院在线选座功能-ReactJS
react电影院在线选座功能 北京八维研修学院技术工程师,5年大型项目实战开发经验,3年授课经验. 孟宪杰 ¥29.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...
- andriod 打造炫酷的电影票在线选座控件,1比1还原淘宝电影在线选座功能
本篇文章已经授权微信公共账号 guolin_blog(郭霖)独家发布 不知道大家有没有跟我一样的感觉,看了那么多的介绍自定义控件原理.事件分发机制的书籍,文章,教程,依然还是不能随心所欲的自定义控件. ...
- java电影票选座_Android自定义view实现电影票在线选座功能
先看看电影票在线选座功能实现的效果图: 界面比较粗糙,主要看原理. 这个界面主要包括以下几部分 1.座位 2.左边的排数 3.左上方的缩略图 4.缩略图中的红色区域 5.手指移动时跟随移动 6.两个手 ...
- vue影院在线选座--可拖拽、缩放--A/B/C三级座位
以前练习写项目的时候,写过一个影院的在线选座页面,也看了很多插件和别人写的,大部分是移动端,类似于美团电影那种选座,页面可以放大,缩小,拖拽,我写的是PC端的,看看效果: 再放一张原图,看得清楚: 说 ...
- java在线选座功能_基于jquery实现在线选座订座之影院篇
先给大家展示效果图(支持源码下载哦): 我们在线购票时(如电影票.车票等)可以自己选座.开发者会在页面上列出座次席位,用户可以一目了然的看到可以选择的座位及支付.本文以电影院购票为例,为您展示如何选座 ...
- 选座php,ticketbooking 电影院在线售票系统,可以 选座功能和 订票 ,分为前台管理和后 WEB(ASP,PHP,...) 246万源代码下载- www.pudn.com...
文件名称: ticketbooking下载 收藏√ [ 5 4 3 2 1 ] 开发工具: ASP 文件大小: 783 KB 上传时间: 2015-04-17 下载次数: 4 提 供 者: ...
- 在线选座位 html5,在线选座须知
目前在线选座功能适用于厦航所有航线,其中付费座位仅适用于国际(地区)航线.在线选座需遵循以下原则: 1. 旅客请于航班起飞72小时之前进行在线选座. 2. 厦航部分航线因航班性质等原因限制在线选座功能 ...
- 自定义View实战:影院在线选座
不知道周末有没有小伙伴使用在线选座app看电影?今天来自 起风的清晨 的投稿,将高度还原淘票票APP,大家可以自己评判一下还原度噢~~ 起风的清晨 的博客地址: http://blog.csdn.ne ...
- Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服务prd文档
Axure原型作品介绍:Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服 ...
最新文章
- 8月第3周回顾:四巨头发三大新闻 一报告引多家争议
- poj2195(最小费用流)
- 数组第一个值_Excel公式技巧69:查找第一个非空值
- jQuery版本不同及多次引用问题
- Spring学习总结(2)——Spring的常用注解
- Java一个对象的内存运行流程图
- Spark _10_补充部分算子【三】
- 辗转相除法(欧几里得算法)求 最大公约数与最小公倍数+推论与证明。
- cogs 547:[HAOI2011] 防线修建
- html项目列表页面源码,HTML 列表
- python autohotkey_PyAutoGUI-python版的autoit/AHK
- android第三方推送实现,Android--利用第三方推送实现APP伪保活(小米篇)
- MySQL数据库事务隔离性的实现
- (40)System Verilog线程停止(disable fork)
- Effective Modern C++ 第三章第二节,C++新特性
- Shane 版详细设计书文档模板
- 电子教室的功能有哪些-极域电子教室
- 苹果换原装电池_航空港区正规苹果换原装屏幕价目表
- 【导数术】14.凹凸反转
- 初学者的图片SEO指南 - 为搜索引擎优化图片
热门文章
- 关于双频/多频腔体滤波器的相关paper汇总
- JAVA程序设计第十版梁勇著答案_0031 Java学习笔记-梁勇著《Java语言程序设计-基础篇 第十版》英语单词...
- react-chartjs-2+chart.js画饼状图
- RTX2050和RTX2060差多少
- 邮件发送失败原因服务器连接超时,我在发送邮件时经常出现发送失败或是连接超时的情况?...
- 读书笔记 摘自:《小米之道》【美】克莱·舍基
- 如果风有轨迹,那么尽头是你
- 使用spacedesk实现两台笔记本的低延迟屏幕扩展
- TVS选型和ESD保护电路设计随笔
- SSM中附件上传,自定义保存路径