js实现模拟电影院真实座位选择购票效果代码

代码语言:html

所属分类:多媒体

代码描述:js实现模拟电影院真实座位选择购票效果代码,点击不同的位置就可以声临其境感受电影屏幕的距离,还可以360度的旋转。

代码标签: 电影院 真实 座位 选择 购票 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" class="no-js">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
    <style>
        *, *:after, *:before { -webkit-box-sizing: border-box; box-sizing: border-box; }
        .clearfix:before, .clearfix:after {display: table;  content: ''; }
        .clearfix:after { clear: both; }
        
        body {
        	font-family: 'Avenir Next', Avenir, 'Helvetica Neue', Helvetica, Arial, sans-serif;
        	color: #fff;
        	background: #272729;
        	height: 100vh;
        	overflow: hidden;
        	-webkit-font-smoothing: antialiased;
        	-moz-osx-font-smoothing: grayscale;
        }
        
        a {
        	outline: none;
        	color: #aaa;
        	text-decoration: none;
        }
        
        a:hover, a:focus {
        	color: #fff;
        }
        
        .hidden {
        	position: absolute;
        	overflow: hidden;
        	width: 0;
        	height: 0;
        	pointer-events: none;
        }
        
        /* Header */
        .header {
        	position: fixed;
        	bottom: 0;
        	left: 0;
        	width: 100%;
        	z-index: 10000;
        	display: -webkit-flex;
        	display: flex;
        	-webkit-align-items: center;
        	align-items: center;
        	padding: 1em;
        	background: linear-gradient(to bottom, transparent, #000);
        	background: rgba(24,24,28,0.3);
        	font-size: 0.85em;
        }
        
        .header__title {
        	font-size: 1.25em;
        	margin: 0;
        	padding: 0;
        	color: #5C5C64;
        }
        
        .note {
        	font-weight: bold;
        	margin: 0 0 0 auto;
        	display: none;
        	padding: 0 0.5em;
        	color: #de6363;
        }
        
        .no-preserve3d .note--support {
        	display: block;
        }
        
        /* Top Navigation Style */
        .codrops-links {
        	position: relative;
        	display: inline-block;
        	text-align: center;
        	white-space: nowrap;
        	margin: 0 0.75em 0 0;
        }
        
        .codrops-links::after {
        	position: absolute;
        	top: 0;
        	left: 50%;
        	width: 1px;
        	height: 100%;
        	background: rgba(255,255,255,0.1);
        	content: '';
        	-webkit-transform: rotate3d(0,0,1,22.5deg);
        	transform: rotate3d(0,0,1,22.5deg);
        }
        
        .codrops-icon {
        	display: inline-block;
        	margin: 0.5em;
        	padding: 0em 0;
        	width: 1.5em;
        	text-decoration: none;
        }
        
        .codrops-icon span {
        	display: none;
        }
        
        .codrops-icon:before {
        	margin: 0 5px;
        	text-transform: none;
        	font-weight: normal;
        	font-style: normal;
        	font-variant: normal;
        	font-family: 'codropsicons';
        	line-height: 1;
        
        	speak: none;
        	-webkit-font-smoothing: antialiased;
        }
        
        .codrops-icon--drop:before {
        	content: "\e001";
        	color: #0099cc;
        }
        
        .codrops-icon--prev:before {
        	content: "\e004";
        }
        /* two seats on each side for free space */
        .container {
          position: relative;
          -webkit-perspective: 2000px;
          perspective: 2000px;
          width: 100vw;
          height: 100vh;
        }
        
        .cube {
          position: absolute;
          top: 50%;
          left: 50%;
          margin: -500px 0 0 -960px;
          width: 1920px;
          height: 1000px;
          -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
        }
        
        .cube__side {
          position: absolute;
          display: block;
        }
        
        .cube__side--front,
        .cube__side--back {
          width: 1920px;
          height: 1000px;
        }
        
        .cube__side--left,
        .cube__side--right {
          background: #2b2b2d;
          width: 3000px;
          /* depth */
          height: 1000px;
        }
        
        .cube__side--top,
        .cube__side--bottom {
          width: 1920px;
          height: 3000px;
          /* depth */
        }
        
        .cube__side--back {
          background: #232325;
          box-shadow: 0 0 0 1px #232325;
          -webkit-transform: translate3d(0, 0, -3000px);
          transform: translate3d(0, 0, -3000px);
        }
        
        .cube__side--right {
          right: 0;
          -webkit-transform: rotate3d(0, 1, 0, -90deg);
          transform: rotate3d(0, 1, 0, -90deg);
          -webkit-transform-origin: 100% 50%;
          transform-origin: 100% 50%;
        }
        
        .cube__side--left {
          -webkit-transform: rotate3d(0, 1, 0, 90deg);
          transform: rotate3d(0, 1, 0, 90deg);
          -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
        }
        
        .cube__side--top {
          background: #272729;
          -webkit-transform: rotate3d(1, 0, 0, 90deg) translate3d(0, -3000px, 0);
          transform: rotate3d(1, 0, 0, 90deg) translate3d(0, -3000px, 0);
          -webkit-transform-origin: 50% 0%;
          transform-origin: 50% 0%;
        }
        
        .rows--large {
          height: 113px;
          left: 160px;
          bottom: 0;
          position: absolute;
          -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
          width: calc(100% - 320px);
          /* leave a margin */
        }
        
        .rows--mini {
          width: 230px;
          margin: 0 auto;
        }
        
        .row {
          display: -webkit-flex;
          display: flex;
          width: 100%;
        }
        
        .rows--mini .row:nth-child(9) {
          margin: 0 0 15px 0;
        }
        
        .rows--large .row {
          left: 0;
          height: 100%;
          position: absolute;
          -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
        }
        
        .row__seat {
          -webkit-flex: none;
          flex: none;
          height: 100%;
          margin: 0;
        }
        
        .rows--mini .row__seat {
          width: 10px;
          height: 10px;
          background: rgba(72, 72, 78, 0.5);
          margin: 1px;
          border-radius: 1px;
          cursor: pointer;
        }
        
        .rows--mini .row__seat:hover {
          background: #57e683;
        }
        
        .rows--mini .row__seat--reserved,
        .rows--mini .row__seat--reserved:hover {
          background: #de6363;
        }
        
        .rows--large .row__seat {
          width: 80px;
          background: url(//repo.bfw.wiki/bfwrepo/images/movie/seat.svg) no-repeat 50% 0;
          background-size: 100%;
        }
        
        .rows--mini .row__seat:nth-child(9) {
          margin-right: 15px;
        }
        
        .rows--large .row__seat:nth-child(9) {
          margin-right: 160px;
        }
        
        /* Row positioning */
        .rows--large .row:nth-child(1) {
          -webkit-transform: translate3d(0, 0px, -2200px);
          transform: translate3d(0, 0px, -2200px);
        }
        
        .rows--large .row:nth-child(2) {
          -webkit-transform: translate3d(0, -18px, -2100px);
          transform: translate3d(0, -18px, -2100px);
        }
        
        .rows--large .row:nth-child(3) {
          -webkit-transform: translate3d(0, -36px, -2000px);
          transform: translate3d(0, -36px, -2000px);
        }
        
        .rows--large .row:nth-child(4) {
          -webkit-transform: translate3d(0, -54px, -1900px);
          transform: translate3d(0, -54px, -1900px);
        }
        
        .rows--large .row:nth-child(5) {
          -webkit-transform: translate3d(0, -72px, -1800px);
          transform: translate3d(0, -72px, -1800px);
        }
        
        .rows--large .row:nth-child(6) {
          -webkit-transform: translate3d(0, -90px, -1700px);
          transform: translate3d(0, -90px, -1700px);
        }
        
        .rows--large .row:nth-child(7) {
          -webkit-transform: translate3d(0, -108px, -1600px);
          transform: translate3d(0, -108px, -1600px);
        }
        
        .rows--large .row:nth-child(8) {
          -webkit-transform: translate3d(0, -126px, -1500px);
          transform: translate3d(0, -126px, -1500px);
        }
        
        .rows--large .row:nth-child(9) {
          -webkit-transform: translate3d(0, -144px, -1400px);
          transform: translate3d(0, -144px, -1400px);
        }
        
        /* Second back row set of seats (starting point needs to have the previous sums of the Y and Z translates) */
        .rows--large .row:nth-child(10) {
          -webkit-transform: translate3d(0, -198px, -1100px);
          transform: translate3d(0, -198px, -1100px);
        }
        
        .rows--large .row:nth-child(11) {
          -webkit-transform: translate3d(0, -216px, -1000px);
          transform: translate3d(0, -216px, -1000px);
        }
        
        .rows--large .row:nth-child(12) {
          -webkit-transform: translate3d(0, -234px, -900px);
          transform: translate3d(0, -234px, -900px);
        }
        
        .rows--large .row:nth-child(13) {
          -webkit-transform: translate3d(0, -252px, -800px);
          transform: translate3d(0, -252px, -800px);
        }
        
        .rows--large .row:nth-child(14) {
          -webkit-transform: translate3d(0, -270px, -700px);
          transform: translate3d(0, -270px, -700px);
        }
        
        .rows--large .row:nth-child(15) {
          -webkit-transform: translate3d(0, -288px, -600px);
          transform: translate3d(0, -288px, -600px);
        }
        
        .rows--large .row:nth-child(16) {
          -webkit-transform: translate3d(0, -306px, -500px);
          transform: translate3d(0, -306px, -500px);
        }
        
        .rows--large .row:nth-child(17) {
          -webkit-transform: translate3d(0, -324px, -400px);
          transform: translate3d(0, -324px, -400px);
        }
        
        .rows--large .row:nth-child(18) {
          -webkit-transform: translate3d(0, -342px, -300.........完整代码请登录后点击上方下载按钮下载查看

网友评论0