项目工程结构图

JQuery插件库

网址


jQuery在线选座位插件seat-charts特效代码:

这是一款基于JQuery实现的在线选座位插件seat-charts源码,是一款适合机票,电影票,客车票选座的jquery.seat-charts插件。点击左侧的座位即可在右侧即时显示座位信息,并且可以有计算累加的功能。

代码模块分析

  • html主体
<div class="container"><div class="demo clearfix"><!---左边座位列表-----><div id="seat_area"><div class="front">屏幕</div>                   </div><!---右边选座信息-----><div class="booking_area"><p>电影:<span>我和我的祖国</span></p><p>时间:<span>10月1日 14:00</span></p><p>座位:</p><ul id="seats_chose"></ul><p>票数:<span id="tickects_num">0</span></p><p>总价:<b>¥<span id="total_price">0</span></b></p><input type="button" class="btn" value="确定购买"/><div id="legend"></div>        <!-- 显示可选的座位和已售出的座位标识 --></div></div></div>

网页效果图:

分析:
首先先确定好基本的HTML主体页面。先写一个容器,在容器中再写一个清除浮动的A块儿,在A块中又分为左右两个块(B块和C块);左边放置座位图显示,右边放置影片和购票等信息;同时给有需要增加样式的标签添加选择器。

  • 添加Css样式
<style type="text/css">.front{width: 300px;margin: 5px 32px 45px 32px;background-color: #f0f0f0;    color: #666;text-align: center;padding: 3px;border-radius: 5px;}.booking_area {float: right;position: relative;width:200px;height: 450px; }.booking_area h3 {margin: 5px 5px 0 0;font-size: 16px;}.booking_area p{line-height:26px; font-size:16px; color:#999}.booking_area p span{color:#666}div.seatCharts-cell {color: #182C4E;height: 25px;width: 25px;line-height: 25px;margin: 3px;float: left;text-align: center;outline: none;font-size: 13px;}div.seatCharts-seat {color: #fff;cursor: pointer;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;}div.seatCharts-row {height: 35px;}div.seatCharts-seat.available {background-color: #B9DEA0;}div.seatCharts-seat.focused {background-color: #76B474;border: none;}div.seatCharts-seat.selected {background-color: #E6CAC4;}div.seatCharts-seat.unavailable {background-color: #472B34;cursor: not-allowed;}div.seatCharts-container {border-right: 1px dotted #adadad;width: 400px;padding: 20px;float: left;}div.seatCharts-legend {padding-left: 0px;position: absolute;bottom: 16px;}ul.seatCharts-legendList {padding-left: 0px;}.seatCharts-legendItem{float:left; width:90px;margin-top: 10px;line-height: 2;}span.seatCharts-legendDescription {margin-left: 5px;line-height: 30px;}.checkout-button {display: block;width:80px; height:24px; line-height:20px;margin: 10px auto;border:1px solid #999;font-size: 14px; cursor:pointer}#seats_chose {max-height: 150px;overflow-y: auto;overflow-x: none;width: 200px;}#seats_chose li{float:left; width:72px; height:26px; line-height:26px; border:1px solid #d3d3d3; background:#f7f7f7; margin:6px; font-size:14px; font-weight:bold; text-align:center}</style>

网页效果图:

  • 添加JQuery插件库
<link rel="stylesheet" type="text/css" href="css/jq22.css" />

网页效果图:

  • 添加Jquery夹包,jQuery在线选座位插件seat-charts,JavaScript语句
<script src="js/jquery-3.4.1.min.js"></script> <script type="text/javascript" src="js/jquery.seat-charts.min.js"></script><script type="text/javascript">var price = 100; //电影票价$(document).ready(function() {var $cart = $('#seats_chose'); //座位区var $tickects_num = $('#tickects_num'); //票数var $total_price = $('#total_price'); //票价总额var sc = $('#seat_area').seatCharts({map: [//座位结构图   a代表座位  _代表过道'aaaaaaaaaa','aaaaaaaaaa','__________','aaaaaaaaa_','aaaaaaaaaa','aaaaaaaaaa','aaaaaaaaaa','aaaaaaaaaa','aaaaaaaaaa','aa__aa__aa'],naming:{//设置行列等信息top: false, //不显示顶部横坐标(行) getLabel: function(character, row, column){ return column; //返回座位信息 }},legend: {//定义图例node: $('#legend'),items: [['a', 'available', '可选座'],['a', 'unavailable', '已售出']]},click: function() {if (this.status() == 'available') //可选座状态,添加座位{ $('<li>' + (this.settings.row + 1) + '排' + this.settings.label + '座</li>').attr('id', 'cart-item-' + this.settings.id).data('seatId', this.settings.id).appendTo($cart);$tickects_num.text(sc.find('selected').length + 1); //统计选票数量$total_price.text(getTotalPrice(sc) + price);//计算票价总金额return 'selected';} else if (this.status() == 'selected') //选中状态{ $tickects_num.text(sc.find('selected').length - 1);//更新票数量$total_price.text(getTotalPrice(sc) - price);//更新票价总金额$('#cart-item-' + this.settings.id).remove();//删除已预订座位return 'available';} else if (this.status() == 'unavailable') //已售出状态{ return 'unavailable';} else{return this.style();}}});//设置已售出的座位sc.get(['1_3', '1_4', '4_4', '4_5', '4_6', '4_7', '4_8']).status('unavailable');});function getTotalPrice(sc) //计算票价总额{ var total = 0;sc.find('selected').each(function() {total += price;});return total;}</script>

网页效果图:

分析:
目的可知:左边屏幕下方需要显示座位坐标图;右边需要显示选择的座位,票数的变化,总价的变化,座位是否可选的标识。
在Jquery动态初始化页面中,获取需要变化的标签,同时将其转化为Jquery对象(Jquery座位区对象、Jquery票数对象、Jquery票价总额对象、Jquery座位分布图对象)。
设置Jquery单击事件(可选,已选,删除,不可选)。

  • 项目源文件(index.html)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>film seats choice</title>
<link rel="stylesheet" type="text/css" href="css/jq22.css" /><style type="text/css">.front{width: 300px;margin: 5px 10px 40px 0px;background-color: #f0f0f0;    color: #666;text-align: center;padding: 3px;border-radius: 5px;}.booking_area {float: right;position: relative;width:200px;height: 450px; }.booking_area h3 {margin: 5px 5px 0 0;font-size: 16px;}.booking_area p{line-height:26px; font-size:16px; color:#999}.booking_area p span{color:#666}div.seatCharts-cell {color: #182C4E;height: 25px;width: 25px;line-height: 25px;margin: 3px;float: left;text-align: center;outline: none;font-size: 13px;}div.seatCharts-seat {color: #fff;cursor: pointer;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;}div.seatCharts-row {height: 35px;}div.seatCharts-seat.available {background-color: #B9DEA0;}div.seatCharts-seat.focused {background-color: #76B474;border: none;}div.seatCharts-seat.selected {background-color: #E6CAC4;}div.seatCharts-seat.unavailable {background-color: #472B34;cursor: not-allowed;}div.seatCharts-container {border-right: 1px dotted #adadad;width: 400px;padding: 20px;float: left;}div.seatCharts-legend {padding-left: 0px;position: absolute;bottom: 16px;}ul.seatCharts-legendList {padding-left: 0px;}.seatCharts-legendItem{float:left; width:90px;margin-top: 10px;line-height: 2;}span.seatCharts-legendDescription {margin-left: 5px;line-height: 30px;}.checkout-button {display: block;width:80px; height:24px; line-height:20px;margin: 10px auto;border:1px solid #999;font-size: 14px; cursor:pointer}#seats_chose {max-height: 150px;overflow-y: auto;overflow-x: none;width: 200px;}#seats_chose li{float:left; width:72px; height:26px; line-height:26px; border:1px solid #d3d3d3; background:#f7f7f7; margin:6px; font-size:14px; font-weight:bold; text-align:center}</style>
</head><body><div class="container"><div class="demo clearfix"><!---左边座位列表-----><div id="seat_area"><div class="front">屏幕</div>                 </div><!---右边选座信息-----><div class="booking_area"><p>电影:<span>我和我的祖国</span></p><p>时间:<span>10月1日 14:00</span></p><p>座位:</p><ul id="seats_chose"></ul><p>票数:<span id="tickects_num">0</span></p><p>总价:<b>¥<span id="total_price">0</span></b></p><input type="button" class="btn" value="确定购买"/><div id="legend"></div>        <!-- 显示可选的座位和已售出的座位标识 --></div></div></div><script src="js/jquery-3.4.1.min.js"></script> <script type="text/javascript" src="js/jquery.seat-charts.min.js"></script><script type="text/javascript">var price = 100; //电影票价$(document).ready(function() {var $cart = $('#seats_chose'); //座位区var $tickects_num = $('#tickects_num'); //票数var $total_price = $('#total_price'); //票价总额var sc = $('#seat_area').seatCharts({map: [//座位结构图   a代表座位  _代表过道'aaaaaaaaaa','aaaaaaaaaa','__________','aaaaaaaaaa','aaaaaaaaaa','aaaaaaaaaa','aaaaaaaaaa','aaaaaaaaaa','aaaaaaaaaa','aa__aa__aa'],naming:{//设置行列等信息top: false, //不显示顶部横坐标(行) left:false, //不显示左边纵坐标(列)getLabel: function(character, row, column){ return column; //返回座位信息 column}},legend: {//定义图例node: $('#legend'),items: [['a', 'available', '可选座'],['a', 'unavailable', '已售出']]},click: function() {if (this.status() == 'available') //可选座状态,添加座位{ $('<li>' + (this.settings.row + 1) + '排' + this.settings.label + '座</li>').attr('id', 'cart-item-' + this.settings.id).data('seatId', this.settings.id).appendTo($cart);$tickects_num.text(sc.find('selected').length + 1); //统计选票数量$total_price.text(getTotalPrice(sc) + price);//计算票价总金额return 'selected';} else if (this.status() == 'selected') //选中状态{ $tickects_num.text(sc.find('selected').length - 1);//更新票数量$total_price.text(getTotalPrice(sc) - price);//更新票价总金额$('#cart-item-' + this.settings.id).remove();//删除已预订座位return 'available';} else if (this.status() == 'unavailable') //已售出状态{ return 'unavailable';} else{return this.style();}}});//设置已售出的座位sc.get(['1_3', '1_4', '4_4', '4_5', '4_6', '4_7', '4_8']).status('unavailable');});function getTotalPrice(sc) //计算票价总额{ var total = 0;sc.find('selected').each(function() {total += price;});return total;}</script></body>
</html>

Jquery实现电影院购票订座功能相关推荐

  1. 视频教程-react电影院在线选座功能-ReactJS

    react电影院在线选座功能 北京八维研修学院技术工程师,5年大型项目实战开发经验,3年授课经验. 孟宪杰 ¥29.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...

  2. python毕业设计作品基于django框架 电影院购票选座系统毕设成品(7)中期检查报告

    整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术 主要python技术介绍:框 ...

  3. python毕业设计作品基于django框架 电影院购票选座系统毕设成品(8)毕业设计论文模板

    整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术 主要python技术介绍:框 ...

  4. python毕业设计作品基于django框架 电影院购票选座系统毕设成品(4)开题报告

    整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术 主要python技术介绍:框 ...

  5. python毕业设计作品基于django框架 电影院购票选座系统毕设成品(6)开题答辩PPT

    整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术 主要python技术介绍:框 ...

  6. java基于微信小程序的电影院购票选座 uniapp 小程序

    随着移动应用技术的发展,越来越多的用户借助于移动手机.电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合,由于城镇人口的增加,人们去电影院总是排着长长的队伍,对于时间紧的人是一个非常头痛的事 ...

  7. 模拟电影院html源码,Html+css+Jquery模拟电影院购票

    采用2D的方式模拟电影院购票的系统.选择的座位一次的追加到代付款的模块当中,最后确认信息后进行购票. .box{ width: 540px; height: 760px; } .weizi{ floa ...

  8. java基于Springboot+vue的影城电影院购票选座系统 elementui 前后端分离

    本论文主要论述了如何使用JAVA语言开发一个影城管理系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述影城管理系统的当前背景以及 ...

  9. 【项目分享~写给应届生的一篇文章】基于Web电影院购票系统 ~~ 选座模块

    背景 适合人群: 应届生 推荐:可直接做为毕业设计项目,开发架构简单,按照统一的规范开发,容易上少 原因:这个项目涉及到SSM三大框架,对于刚刚入门JavaWeb的同学缺少太多必备的知识,导致学习这个 ...

最新文章

  1. 全卷积神经网路【U-net项目实战】U-Net源码上实现自己数据集的分割任务
  2. Caffe、TensorFlow、MXnet三库对比
  3. 2017-6-3 jQuery 事件 DOM操作
  4. IIS 上传文件大小配置步骤(默认200K)
  5. 赣州光华职业技术学校计算机专业,赣州光华职业技术学校
  6. MongoDB索引实战技巧
  7. 操作系统上机作业--根据莱布尼兹级数计算PI(2)(多线程)
  8. 微软、谷歌、百度等公司经典面试100题[第1-60题]——自己的实现[转]
  9. Python-网站页面代码获取
  10. 计算机打印机节支措施,“节支降耗,从我做起 ”倡导篇 ——节约纸张
  11. yarn-cluster 和yarn-client区别
  12. linux平台 oracle 数据库 安装文档
  13. ubuntu(乌班图) 修改ip
  14. 解析word文件的简单实现
  15. 阿里云ECS实例邮件发送不了的解决办法
  16. 计算机病毒 文章400字,身边的俗世奇人作文400字 - 中小学生作文网
  17. JAVA计算机毕业设计小型超市管理系统(附源码、数据库)
  18. 蚂蚁金服自研架构 SOFA 背后的工程师|1024快乐
  19. SNSyx荣光医院合成配方与药剂合成攻略
  20. MySql每晚12点都会弹出这个?

热门文章

  1. 5G NR LDPC编译码汇总
  2. 汽车站订票系统mysql实验_数据库课程设计报告-车站售票管理系统
  3. C语言实现10只小猪称体重
  4. 【问题解决】Epic您的账户目前无法下载更多的免费游戏
  5. 中国家庭医生签约服务基地项目在杭州启动
  6. java xxtea加密_XXTEA 加密算法的 Java 实现
  7. XXTEA算法使用C语言实现
  8. 以太坊的MPT树,以及编码,leveldb存储
  9. Adobe Flash助手推荐广告关闭
  10. Flutter 项目 app迭代更新