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 相关文章推荐
JQuery index()方法使用代码
Jun 02 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
Sep 03 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
Jan 06 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
Jun 30 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
使用puppeteer爬取网站并抓出404无效链接
Dec 20 Javascript
Vue 组件注册实例详解
Feb 23 Javascript
新手快速入门微信小程序组件库 iView Weapp
Jun 24 Javascript
webpack3.0升级4.0的方法步骤
Apr 02 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
js实现双色球效果
Aug 02 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python实现图片上添加图片
2019/11/26 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
投资意向书范本
2014/04/01 职场文书
创文明城市标语
2014/06/16 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
Python中re模块的元字符使用小结
2022/04/07 Python