前端JS特效第28集:JQuery电影选座插件

news2024/11/14 22:00:54

JQuery电影选座插件,先来看看效果:

部分核心的代码如下(全部代码在文章末尾):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

    <head> 

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

        <title>jQuery在线选座(影院版)</title>

        <meta name="keywords" content="jQuery在线选座,jQuery选座系统" />

        <meta name="description" content="jquery.seat-charts是一款适合电影票、高铁票的在线选座插件。" />

        <link rel="stylesheet" type="text/css" href="css/jq22.css" />

        <style type="text/css">

            .front{width: 300px;margin: 5px 32px 45px 32px;background-color: #f0f0f0;	color: #666;text-align: center;padding: 3px;border-radius: 5px;}

            .booking_area {float: right;position: relative;width:200px;height: 450px; }

            .booking_area h3 {margin: 5px 5px 0 0;font-size: 16px;}

            .booking_area p{line-height:26px; font-size:16px; color:#999}

            .booking_area p span{color:#666}

            div.seatCharts-cell {color: #182C4E;height: 25px;width: 25px;line-height: 25px;margin: 3px;float: left;text-align: center;outline: none;font-size: 13px;}

            div.seatCharts-seat {color: #fff;cursor: pointer;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;}

            div.seatCharts-row {height: 35px;}

            div.seatCharts-seat.available {background-color: #B9DEA0;}

            div.seatCharts-seat.focused {background-color: #76B474;border: none;}

            div.seatCharts-seat.selected {background-color: #E6CAC4;}

            div.seatCharts-seat.unavailable {background-color: #472B34;cursor: not-allowed;}

            div.seatCharts-container {border-right: 1px dotted #adadad;width: 400px;padding: 20px;float: left;}

            div.seatCharts-legend {padding-left: 0px;position: absolute;bottom: 16px;}

            ul.seatCharts-legendList {padding-left: 0px;}

            .seatCharts-legendItem{float:left; width:90px;margin-top: 10px;line-height: 2;}

            span.seatCharts-legendDescription {margin-left: 5px;line-height: 30px;}

            .checkout-button {display: block;width:80px; height:24px; line-height:20px;margin: 10px auto;border:1px solid #999;font-size: 14px; cursor:pointer}

            #seats_chose {max-height: 150px;overflow-y: auto;overflow-x: none;width: 200px;}

            #seats_chose li{float:left; width:72px; height:26px; line-height:26px; border:1px solid #d3d3d3; background:#f7f7f7; margin:6px; font-size:14px; font-weight:bold; text-align:center}

        </style>

    </head>

    <body>

        <div class="container">

          <h2 class="title"><a href="http://www.jq22.com/jquery-info2692">jQuery在线选座(影院版)</a></h2>

            <div class="demo clearfix">

                <!---左边座位列表----->

                <div id="seat_area">

                    <div class="front">屏幕</div>					

                </div>

                <!---右边选座信息----->

                <div class="booking_area">

                    <p>电影:<span>天将雄师</span></p>

                    <p>时间:<span>03月20日 22:15</span></p>

                    <p>座位:</p>

                    <ul id="seats_chose"></ul>

                    <p>票数:<span id="tickects_num">0</span></p>

                    <p>总价:<b>¥<span id="total_price">0</span></b></p>



                    <input type="button" class="btn" value="确定购买"/>



                    <div id="legend"></div>

                </div>

            </div>

        </div>

        <script src="http://www.jq22.com/jquery/1.9.1/jquery.min.js"></script>

        <script type="text/javascript" src="jquery.seat-charts.min.js"></script>

        <script type="text/javascript">

            var price = 100; //电影票价

            $(document).ready(function() {

                var $cart = $('#seats_chose'), //座位区

                        $tickects_num = $('#tickects_num'), //票数

                        $total_price = $('#total_price'); //票价总额



                var sc = $('#seat_area').seatCharts({

                    map: [//座位结构图 a 代表座位; 下划线 "_" 代表过道

                        'cccccccccc',

                        'cccccccccc',

                        '__________',

                        'cccccccc__',

                        'cccccccccc',

                        'cccccccccc',

                        'cccccccccc',

                        'cccccccccc',

                        'cccccccccc',

                        'cc__cc__cc'

                    ],

                    naming: {//设置行列等信息

                        top: false, //不显示顶部横坐标(行) 

                        getLabel: function(character, row, column) { //返回座位信息 

                            return column;

                        }

                    },

                    legend: {//定义图例

                        node: $('#legend'),

                        items: [

                            ['c', 'available', '可选座'],

                            ['c', 'unavailable', '已售出']

                        ]

                    },

                    click: function() {

                        if (this.status() == 'available') { //若为可选座状态,添加座位

                            $('<li>' + (this.settings.row + 1) + '排' + this.settings.label + '座</li>')

                                    .attr('id', 'cart-item-' + this.settings.id)

                                    .data('seatId', this.settings.id)

                                    .appendTo($cart);



                            $tickects_num.text(sc.find('selected').length + 1); //统计选票数量

                            $total_price.text(getTotalPrice(sc) + price);//计算票价总金额



                            return 'selected';

                        } else if (this.status() == 'selected') { //若为选中状态



                            $tickects_num.text(sc.find('selected').length - 1);//更新票数量

                            $total_price.text(getTotalPrice(sc) - price);//更新票价总金额

                            $('#cart-item-' + this.settings.id).remove();//删除已预订座位



                            return 'available';

                        } else if (this.status() == 'unavailable') { //若为已售出状态

                            return 'unavailable';

                        } else {

                            return this.style();

                        }

                    }

                });

                //设置已售出的座位

                sc.get(['1_3', '1_4', '4_4', '4_5', '4_6', '4_7', '4_8']).status('unavailable');



            });



            function getTotalPrice(sc) { //计算票价总额

                var total = 0;

                sc.find('selected').each(function() {

                    total += price;

                });

                return total;

            }

        </script>



    </body>

</html>





全部代码:JQuery电影选座插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1914949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有没有文字转语音的软件?轻松搞定文字转语音的工具

当文字跃然纸上&#xff0c;它们是静止的&#xff0c;沉默的。 但想象一下&#xff0c;如果这些文字能够被赋予声音&#xff0c;它们将如何生动地跳跃在我们的耳边&#xff1f;在这个充满无限可能的时代&#xff0c;文字转语音技术正将这种想象变为现实。它不仅让我们的阅读体…

外贸展示型网站设计

清洁能源风能设备wordpress外贸公司模板 风能设备wordpress外贸公司模板&#xff0c;做新能源网通设备的公司网站模板。 https://www.jianzhanpress.com/?p3606 钢材wordpress外贸公司模板 金属钢材wordpress外贸公司模板&#xff0c;做金属成品贸易公司的企业网站模板。 …

秒懂设计模式--学习笔记(9)【结构型-装饰器模式】

目录 8、装饰器模式8.1 装饰器模式&#xff08;Decorator&#xff09;8.2 装修&#xff08;举例&#xff09;8.3 化妆&#xff08;示例&#xff09;8.4 化妆品的多样化8.5 装饰器8.6 自由嵌套8.7 装饰器模式的各角色定义8.8 装饰器模式 8、装饰器模式 8.1 装饰器模式&#xff…

VBA即用型代码手册:根据预定义的文本条件删除行

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xff0c;而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想&#xff0c;积木编程最重要的是积木如何搭建…

Everything搜索无法搜索到桌面的文件(无法检索C盘 或 特定路径的文件)

现象描述 在Everything搜索框中输入桌面已存在的文件或随便已知位置的文件&#xff0c;无法找到。 搜索时检索结果中明显缺少部分磁盘位置的&#xff0c;例如无法检索C盘&#xff0c;任意关键字搜索时结果中没有位于C盘的&#xff0c;无论怎样都搜不到C盘文件。 解决方法 在…

私活必备框架!终于找到一个前后端都有的后台管理系统了~

大家好&#xff0c;我是「程序视点」爱分享的小二哥~ 今天介绍一个新的Vue后台管理框架&#xff0c;相比其他后台功能丰富管理系统&#xff0c;这个后台管理系统可以用干净简洁来形容——Nova-admin Nova-admin Nova-admin 是一个基于Vue3、Vite5等最新技术的后台管理平台。用…

【实战场景】@Transactional中使用for update的注意点

【实战场景】Transactional中使用for update的注意点 开篇词&#xff1a;干货篇&#xff1a;知识回顾注意点1.锁的范围和粒度&#xff1a;2.事务的隔离级别&#xff1a;3.死锁&#xff1a;4.性能影响&#xff1a;5.事务的边界&#xff1a;6.异常处理&#xff1a;7. 数据库和存储…

Xinstall揭秘:APP推广数据背后的真相,让你的营销更精准!

在这个移动互联网时代&#xff0c;APP如同雨后春笋般涌现&#xff0c;但如何在这片红海中脱颖而出&#xff0c;成为每一个开发者与运营者面临的共同难题。其中&#xff0c;APP推广统计作为衡量营销效果、优化推广策略的关键环节&#xff0c;更是不可忽视的一环。今天&#xff0…

【java计算机毕设】学生项目竞赛管理系统 MySQL ssm JSP maven小组项目设计代码源码+万字文档

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】学生项目竞赛管理系统 MySQL ssm JSP maven小组项目设计代码源码万字文档 2项目介绍 系统功能&#xff1a; 学生项目竞赛管理系统包括管理员、用户、教师三种角色。 管理员功能包括个人中心模块用于修改个…

JS进阶-构造函数

学习目标&#xff1a; 掌握构造函数 学习内容&#xff1a; 构造函数 构造函数&#xff1a; 封装是面向对象思想中比较重要的一部分&#xff0c;js面向对象可以通过构造函数实现的封装。 同样的将变量和函数组合到了一起并能通过this实现数据的共享&#xff0c;所不同的是借助…

SA8317E单通道 2.7-15.0V 持续电流 2.5A H 桥驱动芯片

描述 SA8317E 是为消费类产品&#xff0c;小家电和其他 低压或者电池供电的运动控制类应用提供 了一个集成的电机驱动器解决方案。此器 件能够驱动一个直流电机&#xff0c;由一个内部电 荷泵生成所需的栅极驱动电压电路和 4 个 功率 NMOS 组成 H 桥驱动&#xff0c;集成了电…

机器学习和AI智能写作对未来文案编辑的影响

欢迎关注小知&#xff1a;知孤云出岫 目录 机器学习和AI智能写作对未来文案编辑的影响1. 简介2. AI智能写作工具的现状3. AI智能写作的优势3.1 提高效率3.2 降低成本3.3 数据驱动的个性化 4. AI智能写作的挑战4.1 创造力和独创性4.2 道德和伦理问题4.3 技术限制 5. 行业变化5.…

scss概念及使用

目录 scss是什么 scss和css比较 scss的使用 声明变量 区分默认变量 区分全局变量和局部变量 嵌套语法 选择器嵌套 基本嵌套 嵌套中的父选择器引用&#xff08;&&#xff09; 嵌套的注意事项 嵌套的嵌套 属性嵌套 基本属性嵌套 嵌套的注意事项 继承 基本用…

python学习-错误与异常

代码是人的逻辑思维的具体体现&#xff0c;因为没有一个人的逻辑思维是完美无缺的&#xff0c;所以人在编写代码时必然会出现各种错误。既然错误或多或少都会发生&#xff0c;那么如何捕捉错误&#xff0c;并且捕捉到错误后要如何处理&#xff0c;就显得很重要。 语法错误 Py…

Win10屏幕录制,这3种方法分享给你

数字化时代里&#xff0c;电脑的屏幕录制功能已经不再是简单的工具&#xff0c;而是成为我们表达、学习和交流的重要媒介。Win10系统依然是大部分人使用的电脑系统&#xff0c;那么关于Win10屏幕录制&#xff0c;有哪些好用高效的录制软件&#xff0c;能够帮助我们更加深入地捕…

【postgresql】视图(View)

PostgreSQL 中的视图&#xff08;View&#xff09;是一种虚拟表&#xff0c;其内容由 SQL 查询定义。视图可以简化复杂的 SQL 操作&#xff0c;使得用户能够以一种更直观、更易于理解的方式来访问和操作数据。 PostgreSQL 视图是只读的&#xff0c;因此可能无法在视图上执行 D…

【JavaEE】进程

目录 一.冯诺依曼体系结构 二.CPU的核心概念 核心数 频率&#xff08;Clock Speed 或时钟频率&#xff09; 如何选择合适的CPU 三.指令的执行 1.什么是指令 1.取指令 2.解析指令 3.执行指令 4.访问内存&#xff08;Memory&#xff09;: 5.写回结果&#xff08;Write…

回收站删除了是不是彻底删除了 回收站删除了怎么找回 回收站删除了还能找回来吗

电脑删除的数据文件一般不会直接被彻底删除掉&#xff0c;而是会暂存在回收站中&#xff0c;这样设计主要是为了防止误删除等操作&#xff0c;如果不小心删除了很重要的文件&#xff0c;只需要在回收站对文件进行还原即可。为了让大家更了解回收站&#xff0c;下面给大家详细讲…

在生产环境中打印堆栈信息以排查错误

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

我们以后坐出租车,是不是都是没司机了?

今天看到一篇帖子 说是广州出现了一种无人驾驶的出租车 确实比较新奇 萝卜快跑 自动驾驶&#xff0c;不是一个新概念了 其实技术已经很成熟了 但是可能因为法律的一些原因 一直没有全面推 在加上现在AI大模型这块&#xff0c;很火 AI自动驾驶 从打车 到接客 再到送到目的地 一…