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 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
javascript和jquery实现用户登录验证
May 04 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
Sep 20 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
AngularJS2中一种button切换效果的实现方法(二)
Mar 27 Javascript
javascript将json格式数组下载为excel表格的方法
Dec 22 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
在vue中利用v-html按分号将文本换行的例子
Nov 14 Javascript
详解element上传组件before-remove钩子问题解决
Apr 08 Javascript
javascript实现下拉菜单效果
Feb 09 Javascript
Html5生成验证码的示例代码
May 10 Javascript
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
php5 and xml示例
2006/11/22 PHP
PHP_MySQL教程-第一天
2007/03/18 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
php函数与传递参数实例分析
2014/11/15 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
PHP7.0版本备注
2015/07/23 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
python 图片验证码代码分享
2012/07/04 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
python ansible服务及剧本编写
2017/12/29 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
成人成长感言如何写?
2019/08/16 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题
关于Python使用turtle库画任意图的问题
2022/04/01 Python