电影院选座效果实现

前几天导师会议上,热心的导师对我室友的图书馆系统提出建议,哎呀你觉着你这个选座可不可以整一个电影院选座的效果勒,是不是显得高级些。于是苦逼的我开始试图写前端实现这个效果。

电影院选座效果实现

仔细思考后好像也不难,先找个前端样式,然后加个带数据跳转,然后循环输出座位并根据数据的状态显示不同样式,最后加一个点击选座效果就行了。。

1、找前端样式

这里是github网址:前往
这里是gitee的网址:前往

效果如下图所示:

无

2、thymeleaf

这里我使用的是这个工具进行循环输出以及数据传输。
1、目前我是直接一行到底多次录入,有换行需求自行找th:each怎么隔行输出的法子
2、效果够用,完事

3、代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>预约</title>

    <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
    <meta http-equiv="X-UA-Compatible" content="ie=edge"/>


    <link rel="stylesheet" type="text/css" th:href="@{/css/style.css}" href="../static/css/style.css" />
    <script type="text/javascript" th:src="@{/js/script.js}" src="../static/js/script.js"></script>

    <link rel="stylesheet" type="text/css" th:href="@{/css/bootstrap.css}" href="../static/css/bootstrap.css" />
    <script type="text/javascript" th:src="@{/js/jquery-3.4.1.js}" src="../static/js/jquery-3.4.1.js"></script>
    <script type="text/javascript" th:src="@{/js/bootstrap.js}" src="../static/js/bootstrap.js"></script>
   
</head>
<body>
<!-- 导航 -->
<div class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
        <div class="navbar-collapse collapse" role="navigation">
            <ul class="nav navbar-nav">
                <li class="active"><a class="navbar-brand hidden-sm" th:href="@{/}">
                    <span class="glyphicon glyphicon-home"></span> 主页</a></li>

             
            </ul>
          
        </div>
    </div>
</div>
<!--主体-->
<div class="container">
    <br><br>
    
    <div class="row">
        <div class="col-sm-12">
            <div class="panel panel-default">
                <div class="panel-body">
                    <h4 class="text-center"><span class="glyphicon glyphicon-saved" />&nbsp;自习室座位预约</h4>
                    <p style="text-align:center;color: #ac2925">注意所有座位将会在零点更新预约状态,请同学们注意预约情况!!</p>
                  

                    <!--座位展示 -->
                    <div class="wuliao">
                        <label>图书馆座位展示: </label>

                    </div>

                    <ul class="showcase">
                        <li>
                            <div class="seat"></div>
                            <small>可选择的</small>
                        </li>
                        <li>
                            <div class="seat seatshow"></div>
                            <small>当前选中</small>
                        </li>
                        <li>
                            <div class="seat occupied"></div>
                            <small>已被占</small>
                        </li>
                    </ul>

                    <div class="seat-container">
                        <div class="screen"></div>

                        <div   class="row" >
                            <div th:each="cow:${cow1}" >
                                <div th:class="${cow.getState()==0?'seat':'seat occupied'}" >
                                    <a th:href="@{/接口(cid=${cow.getNo()},sid=${session.student.sid})}" onclick="return confirm('确认预约座位吗?')">
                                        <span class=""></span>&nbsp;&nbsp;&nbsp;</a>
                                </div>
                            </div>

                        </div>


                    </div>

                </div>
            </div>
        </div>
    </div>
    <!--页脚-->
    <div style="margin-bottom: 100px"></div>
    <div class="row" style="margin-top: 40px">
        <footer class="navbar navbar-fixed-bottom" style="background-color:#000000;">
            <div class="container">
                <div class="row" style="padding-top: 20px;padding-bottom: 10px">
                  

                    <div class="col-sm-4" >

                        <p style="color: #eeeeee"> 部分图片素材来自互联网,版权归原作者及网站所有</p>
                    </div>
                </div>
            </div>
        </footer>
    </div>
</div>
</body>
</html>

4、注意

传入的座位数据有no和state,分别代表座位id与当前是否被占。

本文章仅为作者平时一个小demo分享,若对你没有帮助,那我十分抱歉下次还发。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Vue实现电影院选座效果的示例代码: ```html <template> <div class="seat-selection"> <h2>请选择座位</h2> <div class="screen">屏幕</div> <div class="seats"> <div v-for="(row, rowIndex) in seats" :key="rowIndex" class="row"> <div v-for="(seat, seatIndex) in row" :key="seatIndex" :class="{'seat': true, 'selected': seat.selected, 'unavailable': !seat.available}" @click="selectSeat(rowIndex, seatIndex)"> {{ seatIndex + 1 }} </div> </div> </div> <div class="legend"> <div class="legend-item available">可选座位</div> <div class="legend-item selected">已选座位</div> <div class="legend-item unavailable">不可选座位</div> </div> <div class="buttons"> <button class="btn btn-primary" @click="confirmSelection">确认选座</button> <button class="btn btn-secondary" @click="cancelSelection">取消选座</button> </div> </div> </template> <script> export default { data() { return { seats: [ // 该电影院座位的二维数组 // 每个元素代表一个座位,包含属性available和selected // available表示该座位是否可选,selected表示该座位是否被选中 // 例如:{ available: true, selected: false } ], selectedSeats: [] // 已选座位的数组 } }, methods: { selectSeat(rowIndex, seatIndex) { // 选择座位的方法 if (this.seats[rowIndex][seatIndex].available) { this.seats[rowIndex][seatIndex].selected = !this.seats[rowIndex][seatIndex].selected; if (this.seats[rowIndex][seatIndex].selected) { this.selectedSeats.push([rowIndex, seatIndex]); } else { const index = this.selectedSeats.findIndex((seat) => seat[0] === rowIndex && seat[1] === seatIndex); this.selectedSeats.splice(index, 1); } } }, confirmSelection() { // 确认选座的方法 // 处理选座逻辑 }, cancelSelection() { // 取消选座的方法 // 清空已选座位数组和每个座位的selected属性 this.selectedSeats.forEach((seat) => { this.seats[seat[0]][seat[1]].selected = false; }); this.selectedSeats = []; } } } </script> <style scoped> .seat-selection { display: flex; flex-direction: column; align-items: center; gap: 10px; font-size: 16px; } .screen { width: 500px; height: 30px; background-color: black; color: white; text-align: center; line-height: 30px; } .seats { display: flex; flex-direction: column; gap: 5px; margin-top: 10px; } .row { display:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值