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 相关文章推荐
js获取单选框或复选框值及操作
Dec 18 Javascript
js单例模式的两种方案
Oct 22 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
javascript实现拖放效果
Dec 16 Javascript
图文详解JavaScript的原型对象及原型链
Aug 02 Javascript
JavaScript数据结构之链表的实现
Mar 19 Javascript
微信小程序 新建登录页并实现tabBar隐藏
Jun 13 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
Dec 03 Javascript
通过图带你深入了解vue的响应式原理
Jun 21 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
JS实现瀑布流效果
Mar 07 Javascript
Vue+Openlayers自定义轨迹动画
Sep 24 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
php学习之function的用法
2012/07/14 PHP
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python中获取对象信息的方法
2015/04/27 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
numpy中的高维数组转置实例
2018/04/17 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
python的re模块使用方法详解
2019/07/26 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
Python自动创建Excel并获取内容
2020/09/16 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
天网面试题
2013/04/07 面试题
大学生如何写自荐信
2014/01/08 职场文书
项目管理计划书
2014/01/09 职场文书
护士辞职信范文
2014/01/19 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
关于环保的建议书
2014/05/12 职场文书
MySQL新手入门进阶语句汇总
2022/09/23 MySQL