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 相关文章推荐
Microsfot .NET Framework4.0框架 安装失败的解决方法
Aug 14 Javascript
浅析JavaScript动画
Jun 10 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
Nov 24 Javascript
谈谈第三方App接入微信登录 解读
Dec 27 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
Feb 14 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
Vue实现简易翻页效果源码分享
Nov 08 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 Javascript
Vue监视数据的原理详解
Feb 24 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
PHP在线书签系统分享
2016/01/04 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
JS打印组合功能
2016/08/04 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python二分法实现实例
2013/11/21 Python
Python中的异常处理简明介绍
2015/04/13 Python
RC4文件加密的python实现方法
2015/06/30 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
捷克玩具商店:Bambule
2019/02/23 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
2014年大学生自我评价
2014/01/19 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书