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 替换
Feb 19 Javascript
javascript 新浪背投广告实现代码
Jul 07 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
Jul 18 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
Apr 04 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
基于jQuery封装的分页组件
Jun 26 jQuery
详解vue中computed 和 watch的异同
Jun 30 Javascript
vue增删改查的简单操作
Jul 15 Javascript
javascript  删除select中的所有option的实例
Sep 17 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 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
Terran建筑一览
2020/03/14 星际争霸
php下Memcached入门实例解析
2015/01/05 PHP
php实现购物车功能(下)
2016/01/05 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python实现简易通讯录修改版
2018/03/13 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python实现整数的二进制循环移位
2019/03/08 Python
Django 反向生成url实例详解
2019/07/30 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
python绘制封闭多边形教程
2020/02/18 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
Linux开机引导的步骤是什么
2015/10/19 面试题
平民服装店创业计划书
2014/01/17 职场文书
幼儿教育感言
2014/02/05 职场文书
实习单位评语
2014/04/26 职场文书
国旗下的演讲稿
2014/05/08 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
北大自主招生自荐信
2015/03/04 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
用python实现监控视频人数统计
2021/05/21 Python