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


Posted in Javascript onAugust 27, 2015

本文实例讲述了jQuery在线选座位插件seat-charts特效。分享给大家供大家参考。具体如下:
这是一款基于JQuery实现的在线选座位插件seat-charts源码,是一款适合机票,电影票,客车票选座的jquery.seat-charts插件。点击左侧的座位即可在右侧即时显示座位信息,并且可以有计算累加的功能。
特点:支持自定义座位类型和价格,支持自定义样式,支持设置不可选的座位,也支持键盘控制选座。
运行效果图:                     -------------------查看效果 下载源码-------------------

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

小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式。
为大家分享的jQuery在线选座位插件seat-charts特效代码如下

<!doctype html>
<html>
<head>
<title>jQuery在线选座位插件seat-charts</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/jquery.seat-charts.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div class="wrapper">
 <div class="container">
 <div id="seat-map">
  <div class="front-indicator">机头</div>
 </div>
 <div class="booking-details">
  <h3>已选中的座位 (<span id="counter">0</span>):</h3>
  <ul id="selected-seats">
  </ul>
  <p>总价: <b>$<span id="total">0</span></b></p>
  <p><button class="checkout-button">结算</button></p>  
  <div id="legend"></div>
 </div>
 </div>
</div>
<script src="js/jquery-1.11.0.min.js"></script> 
<script src="js/jquery.seat-charts.min.js"></script> 
<script>
 var firstSeatLabel = 1;
 
 $(document).ready(function() {
 var $cart = $('#selected-seats'),
  $counter = $('#counter'),
  $total = $('#total'),
  sc = $('#seat-map').seatCharts({
  map: [
  'ff_ff',
  'ff_ff',
  'ee_ee',
  'ee_ee',
  'ee___',
  'ee_ee',
  'ee_ee',
  'ee_ee',
  'ee_ee',
  'eeeee',
  ],
  seats: {
  f: {
  price : 100,
  classes : 'first-class', //your custom CSS class
  category: '头等舱'
  },
  e: {
  price : 40,
  classes : 'economy-class', //your custom CSS class
  category: '经济舱'
  }  
  
  },
  naming : {
  top : false,
  getLabel : function (character, row, column) {
  return firstSeatLabel++;
  },
  },
  legend : {
  node : $('#legend'),
   items : [
  [ 'f', 'available', '头等舱' ],
  [ 'e', 'available', '经济舱'],
  [ 'f', 'unavailable', '已预定']
   ]  
  },
  click: function () {
  if (this.status() == 'available') {
  $('<li>'+this.data().category+this.settings.label+'号座位'+':<br/>价格:<b>$'+this.data().price+'</b> <a href="#" class="cancel-cart-item">[删除]</a></li>')
  .attr('id','cart-item-'+this.settings.id)
  .data('seatId', this.settings.id)
  .appendTo($cart);
  $counter.text(sc.find('selected').length+1);
  $total.text(recalculateTotal(sc)+this.data().price);
  
  return 'selected';
  } else if (this.status() == 'selected') {
  //update the counter
  $counter.text(sc.find('selected').length-1);
  //and total
  $total.text(recalculateTotal(sc)-this.data().price);
  
  //remove the item from our cart
  $('#cart-item-'+this.settings.id).remove();
  
  //seat has been vacated
  return 'available';
  } else if (this.status() == 'unavailable') {
  //seat has been already booked
  return 'unavailable';
  } else {
  return this.style();
  }
  }
 });

 //this will handle "[cancel]" link clicks
 $('#selected-seats').on('click', '.cancel-cart-item', function () {
  //let's just trigger Click event on the appropriate seat, so we don't have to repeat the logic here
  sc.get($(this).parents('li:first').data('seatId')).click();
 });

 //let's pretend some seats have already been booked
 sc.get(['1_2', '4_1', '7_1', '7_2']).status('unavailable');
 
 });

 function recalculateTotal(sc) {
 var total = 0;
 
 //basically find every selected seat and sum its price
 sc.find('selected').each(function () {
 total += this.data().price;
 });
 
 return total;
 }
 
 </script>
<div align="center" style="clear:both;font-size:12px;color:#666;font:normal 14px/24px 'MicroSoft YaHei';">
<p>适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. </p>
</div>
</body>
</html>

以上就是为大家分享的jQuery在线选座位插件seat-charts特效代码,希望大家可以喜欢。

Javascript 相关文章推荐
动态加载iframe
Jun 16 Javascript
jquery中one()方法的用法实例
Jan 16 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
JS for循环中i++ 和 ++i的区别介绍
Jul 20 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
Jun 16 Javascript
ES6中Class类的静态方法实例小结
Oct 28 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
关于vue编译版本引入的问题的解决
Sep 17 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
Mar 17 Javascript
vue完美实现el-table列宽自适应
May 08 Vue.js
js实现div拖动动画运行轨迹效果代码分享
Aug 27 #Javascript
js+div实现文字滚动和图片切换效果代码
Aug 27 #Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 #Javascript
json+jQuery实现的无限级树形菜单效果代码
Aug 27 #Javascript
jQuery on()方法示例及jquery on()方法的优点
Aug 27 #Javascript
js实现仿京东2级菜单效果(带延时功能)
Aug 27 #Javascript
jQuery UI设置固定日期选择特效代码分享
Aug 27 #Javascript
You might like
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
php UBB 解析实现代码
2011/11/27 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
python append、extend与insert的区别
2016/10/13 Python
Python学习小技巧总结
2018/06/10 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
python代码编写计算器小程序
2020/03/30 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
卫校毕业生个人自我鉴定
2014/04/28 职场文书
个人先进事迹材料
2014/12/29 职场文书
拾金不昧表扬信
2015/01/16 职场文书
寒山寺导游词
2015/02/03 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang
解析python中的jsonpath 提取器
2022/01/18 Python