123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952 |
- <template>
- <view class="container">
- <view class="loading" v-if="loadingState" :class="[loadingOutAnime?'loadingOut':'']">
- <view class="loadingBox" v-if="loadPointState">
- <span class="span1"></span>
- <span class="span2"></span>
- <span class="span3"></span>
- <span class="span4"></span>
- <span class="span5"></span>
- <span class="span6"></span>
- </view>
- <image class="loadingText" @load="loadImgEnd" :src="loadingText" mode="aspectFit"></image>
- </view>
- <view class="yunBg" :class="[yunBgState?'yunBgOut':'']" v-if="yunShowState">
- <video id="videoYunDom" :src="yunVideoPath" :loop="false" :controls="false" :muted="true" objectFit='cover'
- :show-progress='false' :custom-cache="false" :enable-progress-gesture='false' :show-play-btn='false'
- :show-fullscreen-btn='false' @loadedmetadata="videoYunLoadingEnd"></video>
- </view>
- <view class="containerBg" @touchmove="touchStart">
- <video id="videoBgDom" :src="bgVideoPath" :loop="true" :controls="false" :muted="true" objectFit='cover'
- :show-progress='false' :custom-cache="false" :enable-progress-gesture='false' :show-play-btn='false'
- :show-fullscreen-btn='false' @loadedmetadata="videoBgLoadingEnd"></video>
- <view class="point" v-if="pointShow" v-for="(item,index) in pointList" :key="item.title"
- :style="{width:item.width,height:item.height,left:item.left,top:item.top}"
- @click="pointClick(item,index)">
- <image v-show="!item.showState" class="pointImg" :src="item.img" mode="aspectFill"></image>
- <image v-show="item.showState" class="pointImgA" :src="item.imgA" mode="aspectFill"></image>
- </view>
- <view class="openBook" @click="clickOpenBook">
- <image :src="bookUrl" mode="aspectFit"></image>
- </view>
- <view class="bookPlane" v-show="bookOpenState">
- <view class="bookClose" @click="clickCloseBook">
- <image :src="bookCloseUrl" mode="aspectFit"></image>
- </view>
- <!-- 书页 -->
- <view class="swiperContent">
- <view class="uni-margin-wrap">
- <swiper class="swiper" circular :indicator-dots="indicatorDots" :autoplay="autoplay"
- :interval="interval" :duration="duration">
- <swiper-item>
- <view class="swiper-itemA uni-bg-red">
- <image :src="'https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/pic'+0+'.png'"
- mode="aspectFill"></image>
- </view>
- </swiper-item>
- <swiper-item v-for="(item,index) in swiperList" :key="item">
- <view class="swiper-item uni-bg-red">
- <image :src="'https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/pic'+(item+1)+'.png'"
- mode="aspectFill"></image>
- </view>
- </swiper-item>
- </swiper>
- </view>
- </view>
- </view>
- <view class="animeBox" :style="{left:animeLine[animeIndex].x,top:animeLine[animeIndex].y}">
- <image :src="shipImg" alt=""></image>
- </view>
- </view>
- <view class="changeAudio" :class="[audioState?'changeAudioPlay':'']" @click="changeAudio">
- <image :src="audioImgA" v-show="audioState" mode="aspectFit"></image>
- <image :src="audioImgB" v-show="!audioState" mode="aspectFit"></image>
- </view>
- <view class="content" v-show="contentOpenState">
- <view class="videoLayer" v-if="openType=='video'">
-
- <view class="videoCloseTips">
- <image :src="videoCloseTips" mode="aspectFit"></image>
- </view>
- </view>
- <view class="videoBox" :class="[openType=='video'?'videoShow':'videoNone']">
- <view class="closeVideoLayer" @click="closeContent"></view>
- <view class="videoBorder">
- <view class="videoTitle">
- <image :src="videoTitle" mode="aspectFit"></image>
- </view>
- <video id="videoDom" :src="videoPath" :controls="true" :play-strategy="0" :autoplay="false"
- :custom-cache="false" objectFit="fill" :show-progress='true' enable-progress-gesture='false'
- :direction="90" :show-fullscreen-btn="true" :show-loading="true" :show-play-btn='false'
- @play="videoPlay" @error="videoPlayErr"></video>
- </view>
- </view>
- <view class="imageBox" v-if="openType=='image'">
- <view class="textBox">
- <view class="closeImgContent" @click="closeImgContentFn"></view>
- <image :src="textImg" mode="aspectFit"></image>
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- import request from "@/utils/request.js"
- export default {
- data() {
- return {
- loadPointState: false,
- loadingState: true,
- loadingOutAnime: false, //加载退场动画
- loadingCount: 0,
- bookOpenState: false,
- bookUrl: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/book.png",
- bookCloseUrl: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/bookClose.png",
- loadingText: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/loading2.jpg",
- baseUrl: "",
- bgVideoPath: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/zmfbg.mp4",
- videoTitle: "",
- textImg: "",
- yunBgState: false,
- yunShowState: true,
- yunVideoPath: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/zmfyun.mp4",
- audioImgA: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/audioOn.png",
- audioImgB: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/audioOff.png",
- currentIndex: 0, //当前被点击的动画索引
- animeIndex: 0, //当前动画播放的位置
- audioState: true,
- clickState: true, //控制动画结束才能在点击
- videoContext: "", //视频组件
- videoPath: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/11.mp4",
- videoYunDomCtx: "",
- videoBgCtx: "",
- pointShow: false,
- contentOpenState: false, //内容打开状态
- openType: "video", //打开的类型
- btnClickIndex: 0, //被点击按钮的下标
- shipImg: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/ship.png",
- videoCloseTips: "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/videoCloseTips.png",
- pointList: [{
- "title": "1",
- "width": "234rpx",
- "height": "190rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/01C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/01D.png",
- "left": "90rpx",
- "top": "268rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/01.mp4",
- "type": "video",
- "index": 600
- },
- {
- "title": "2",
- "width": "119rpx",
- "height": "140rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/02C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/02D.png",
- "left": "72rpx",
- "top": "536rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/02.mp4",
- "type": "video",
- "index": 440
- },
- {
- "title": "3",
- "width": "34rpx",
- "height": "90rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/03C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/03D.png",
- "left": "269rpx",
- "top": "590rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/text03.png",
- "type": "image",
- "index": 420
- },
- {
- "title": "4",
- "width": "110rpx",
- "height": "124rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/04C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/04D.png",
- "left": "139rpx",
- "top": "719rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/04.mp4",
- "type": "video",
- "index": 360
- },
- {
- "title": "5",
- "width": "113rpx",
- "height": "94rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/05C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/05D.png",
- "left": "200rpx",
- "top": "837rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/text05.png",
- "type": "image",
- "index": 295
- },
- {
- "title": "6",
- "width": "114rpx",
- "height": "105rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/06C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/06D.png",
- "left": "379rpx",
- "top": "791rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/text06.png",
- "type": "image",
- "index": 295
- },
- {
- "title": "7",
- "width": "131rpx",
- "height": "109rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/07C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/07D.png",
- "left": "531rpx",
- "top": "955rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/text07.png",
- "type": "image",
- "index": 130
- },
- {
- "title": "8",
- "width": "105rpx",
- "height": "90rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/08C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/08D.png",
- "left": "399rpx",
- "top": "1048rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/08.mp4",
- "type": "video",
- "index": 100
- },
- {
- "title": "9",
- "width": "125rpx",
- "height": "99rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/09C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/09D.png",
- "left": "292rpx",
- "top": "930rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/text09.png",
- "type": "image",
- "index": 200
- },
- {
- "title": "10",
- "width": "115rpx",
- "height": "133rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/10C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/10D.png",
- "left": "602rpx",
- "top": "1068rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/10.mp4",
- "type": "video",
- "index": 40
- },
- {
- "title": "11",
- "width": "147rpx",
- "height": "139rpx",
- "showState": false,
- "img": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/11C.png",
- "imgA": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/11D.png",
- "left": "498rpx",
- "top": "1285rpx",
- "data": "https://dadu.oss-cn-hangzhou.aliyuncs.com/static/zhaomengfu/11.mp4",
- "type": "video",
- "index": 0
- }
- ],
- animeLine: [],
- T: "", //当前定时器
- aI: 0, //动画帧索引
- animeState: false, //是否进行动画
- animeStart: 0, //当前动画开始的数组下标
- animeEnd: 0, //当前动画结束的数组下标
- animeDirection: 1,
- saveAnime: [],
- indicatorDots: true,
- autoplay: true,
- interval: 2000,
- duration: 500,
- swiperList: 9,
- }
- },
- methods: {
- async initData() {
- this.baseUrl = this.$g.baseUrl
- this.audioImg = `${this.$g.baseUrl}/static/zhaomengfu/audio.png`
- this.videoContext = uni.createVideoContext('videoDom', this)
- this.videoYunDomCtx = uni.createVideoContext('videoYunDom', this)
- this.videoBgCtx = uni.createVideoContext('videoBgDom', this)
- let res = await request({
- url: "/api/getAnimeLine",
- method: "GET",
- data: {
- code: "getAnime"
- },
- })
- this.animeLine = res.data.data
- },
- loadImgEnd(e) {
- this.loadPointState = true
- },
- clickOpenBook() {
- this.bookOpenState = true
- },
- clickCloseBook() {
- this.bookOpenState = false
- },
- closeContent() {
- this.audioState = true
- this.innerAudioContext.play()
- this.videoContext.stop()
- this.videoPath = ""
- this.contentOpenState = false
- },
- closeImgContentFn() {
- this.contentOpenState = false
- },
- createAudio() {
- this.innerAudioContext = uni.createInnerAudioContext()
- this.innerAudioContext.loop = true
- this.innerAudioContext.src = `${this.$g.baseUrl}/static/zhaomengfu/audio.mp3`
- },
- changeAudio() {
- if (this.audioState) {
- this.innerAudioContext.pause()
- // console.log(JSON.stringify(this.saveAnime))
- } else {
- this.innerAudioContext.play()
- }
- this.audioState = !this.audioState
- },
- videoYunLoadingEnd() {
- this.loadingCount++
- if (this.loadingCount == 2) {
- this.yunAnimeStart()
- }
- },
- yunAnimeStart() {
- this.loadingOutAnime = true
- let tX = setTimeout(() => {
- this.loadingState = false
- this.videoYunDomCtx.play()
- this.yunBgState = true
- clearTimeout(tX)
- }, 1000)
- let yunT = setTimeout(() => {
- this.yunShowState = false
- this.pointShow = true
- clearTimeout(yunT)
- }, 4000)
- },
- videoBgLoadingEnd() {
- this.loadingCount++
- this.videoBgCtx.play()
- if (this.loadingCount == 2) {
- this.yunAnimeStart()
- }
- },
- videoPlay() {
- if (this.innerAudioContext) {
- this.innerAudioContext.pause()
- this.audioState = false
- }
- },
- videoPlayErr(){
- this.videoBgCtx.play()
- },
- pointClick(data, index) {
- if (this.clickState) {
- this.pointList[this.btnClickIndex].showState = false
- data.showState = true
- this.btnClickIndex = index
- this.animeStart = this.currentIndex
- this.animeEnd = data.index
- this.openType = data.type
- if (this.currentIndex - data.index == 0) {
- this.contentOpenState = true
- this.openType = data.type
- if (this.openType == 'video') {
- this.videoTitle = `${this.$g.baseUrl}/static/zhaomengfu/titlev${data.title}.png`
- this.videoPath = data.data
- let t = setTimeout(() => {
- // this.videoContext.pause()
- this.videoContext.play();
- clearTimeout(t)
- }, 1000)
- }
- if (this.openType == 'image') {
- this.textImg = `${this.$g.baseUrl}/static/zhaomengfu/text${data.title}.png`
- }
- return
- }
- if (this.openType == 'video') {
- this.videoTitle = `${this.$g.baseUrl}/static/zhaomengfu/titlev${data.title}.png`
- this.videoPath = data.data
- }
- if (this.openType == 'image') {
- this.textImg = `${this.$g.baseUrl}/static/zhaomengfu/text${data.title}.png`
- }
- if (this.currentIndex - data.index > 0) {
- this.animeDirection = -1
- }
- if (this.currentIndex - data.index < 0) {
- this.animeDirection = 1
- }
- this.clickState = false
- this.animeState = true
- }
- // console.log(data)
- },
- animeRender() {
- setInterval(() => {
- if (this.animeState) {
- this.animeStart += this.animeDirection
- // console.log(this.animeIndex)
- this.animeIndex = this.animeStart
- if (this.animeStart == this.animeEnd) {
- this.currentIndex = this.animeEnd
- this.animeState = false
- this.clickState = true
- this.contentOpenState = true
- if (this.openType == 'video') {
- // this.videoContext.pause()
- this.videoContext.play();
- }
- }
- }
- }, 10)
- },
- touchStart(e) {
- // this.animeLine = []
- // let x = this.rpxTopx(e.touches[0].pageX)
- // let y = this.rpxTopx(e.touches[0].pageY)
- // let json1 = {
- // "x": `${e.touches[0].pageX-40.5}rpx`,
- // "y": `${e.touches[0].pageY-42.5}rpx`
- // }
- // this.saveAnime.push(json1)
- // this.animeLine.push(json1)
- // this.aI++
- // console.log(this.aI)
- },
- touchCilick() {
- // console.log(this.aI)
- },
- rpxTopx(px) {
- let deviceWidth = wx.getSystemInfoSync().windowWidth; //获取设备屏幕宽度
- let rpx = (750 / deviceWidth) * Number(px)
- return Math.floor(rpx);
- }
- },
- onLoad() {
- uni.hideHomeButton()
- this.initData()
- this.createAudio()
- this.animeRender()
- },
- onHide() {
- this.audioState = false
- this.innerAudioContext.pause()
- clearInterval(this.T)
- },
- onShow() {
- if (this.innerAudioContext) {
- this.audioState = true
- this.innerAudioContext.play()
- }
- },
- onUnload() {
- this.innerAudioContext.stop()
- this.innerAudioContext.destroy()
- }
- }
- </script>
- <style scoped>
- .container {
- width: 100vw;
- height: 100vh;
- overflow: hidden;
- }
- .container .loading {
- position: absolute;
- top: 0;
- left: 0;
- width: 100vw;
- height: 100vh;
- z-index: 9999999;
- background: #4c4c4c;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .videoShow{
- display: flex !important;
- }
- .videoNone{
- display: none !important;
- }
- .container .loading .loadingBox {
- position: absolute;
- width: 105rpx;
- height: 41rpx;
- display: flex;
- top: 345rpx;
- left: 459rpx;
- z-index: 1;
- opacity: 0;
- justify-content: space-around;
- align-items: center;
- animation: 0.8s loadingBoxAnime 0.5s linear forwards;
- }
- @keyframes loadingBoxAnime {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
- }
- .container .loading .loadingBox span {
- width: 8rpx;
- height: 8rpx;
- background: #c8841a;
- border-radius: 50%;
- }
- .container .loading .loadingBox .span1 {
- animation: 0.8s spanAnime 0.2s alternate infinite;
- }
- .container .loading .loadingBox .span2 {
- animation: 0.8s spanAnime 0.4s alternate infinite;
- }
- .container .loading .loadingBox .span3 {
- animation: 0.8s spanAnime 0.6s alternate infinite;
- }
- .container .loading .loadingBox .span4 {
- animation: 0.8s spanAnime 0.8s alternate infinite;
- }
- .container .loading .loadingBox .span5 {
- animation: 0.8s spanAnime 1s alternate infinite;
- }
- .container .loading .loadingBox .span6 {
- animation: 0.8s spanAnime 1.2s alternate infinite;
- }
- @keyframes spanAnime {
- from {
- transform: scale(1.5);
- }
- to {
- transform: scale(0.7);
- }
- }
- .container .loading .loadingText {
- position: absolute;
- top: 0%;
- left: 0%;
- width: 750rpx;
- height: 1624rpx;
- will-change: transform;
- }
- .container .yunBg {
- position: absolute;
- left: 0;
- top: 0;
- width: 750rpx;
- height: 1624rpx;
- z-index: 99999;
- }
- .container .yunBg video {
- width: 100%;
- height: 100%;
- }
- .container .yunBgOut {
- will-change: opacity;
- animation: 1s yunBgOutAnime 2s linear forwards;
- }
- @keyframes yunBgOutAnime {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- }
- }
- .container .containerBg {
- width: 750rpx;
- height: 1624rpx;
- position: absolute;
- left: 0;
- top: 0;
- overflow: hidden;
- opacity: 0;
- animation: 1s containerBgAnime linear 1s forwards;
- }
- @keyframes containerBgAnime {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
- }
- .container .containerBg #videoBgDom {
- width: 100%;
- height: 100%;
- }
- .container .containerBg .point {
- position: absolute;
- width: 5vw;
- height: 5vw;
- z-index: 9999;
- opacity: 0;
- animation: 0.5s pointAnime linear forwards;
- }
- @keyframes pointAnime {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
- }
- .container .containerBg .point .pointImg {
- animation: 1s pointImgAnime linear forwards;
- }
- .container .containerBg .point .pointImgA {
- animation: 1s pointImgAnimeA linear forwards;
- }
- @keyframes pointImgAnime {
- from {
- opacity: 0.8;
- transform: scale(1.1);
- }
- to {
- opacity: 1;
- transform: scale(1);
- }
- }
- @keyframes pointImgAnimeA {
- from {
- opacity: 0.8;
- transform: scale(0.9);
- }
- to {
- opacity: 1;
- transform: scale(1);
- }
- }
- .container .containerBg .openBook {
- position: absolute;
- width: 55rpx;
- height: 220rpx;
- right: 0;
- top: 555rpx;
- z-index: 9999;
- }
- .container .containerBg .openBook image {
- width: 100%;
- height: 100%;
- }
- .container .containerBg .bookPlane {
- position: absolute;
- width: 100vw;
- height: 100vh;
- left: 0;
- top: 0;
- z-index: 9999;
- background: rgba(70, 72, 71, 0.63)
- }
- .container .containerBg .bookPlane .bookClose {
- position: absolute;
- right: 90rpx;
- top: 440rpx;
- width: 41rpx;
- height: 41rpx;
- }
- .container .containerBg .bookPlane .bookClose image {
- width: 100%;
- height: 100%;
- }
- .uni-margin-wrap {
- width: 690rpx;
- width: 100%;
- }
- .swiperContent {
- width: 100vw;
- height: 560rpx;
- position: absolute;
- top: 500rpx;
- left: 0;
- }
- .swiper {
- height: 600rpx;
- }
- .swiper-itemA {
- display: flex;
- justify-content: center;
- align-items: center;
- width: 287rpx;
- height: 558rpx;
- margin: 0 auto;
- }
- .swiper-itemA image {
- width: 100%;
- height: 100%;
- }
- .swiper-item {
- display: flex;
- justify-content: center;
- align-items: center;
- width: 507rpx;
- height: 558rpx;
- line-height: 300rpx;
- text-align: center;
- margin: 0 auto;
- }
- .swiper-item image {
- width: 100%;
- height: 100%;
- }
- .container .containerBg .animeBox {
- width: 81rpx;
- height: 84rpx;
- position: absolute;
- will-change: left, top;
- }
- .container .containerBg .animeBox image {
- width: 100%;
- height: 100%;
- }
- .container .changeAudio {
- position: absolute;
- right: 45rpx;
- top: 105rpx;
- width: 47rpx;
- height: 47rpx;
- z-index: 99999;
- }
- .container .changeAudio image {
- width: 100%;
- height: 100%;
- }
- .container .changeAudioPlay {
- animation: 1s changeAudioAnime linear infinite;
- }
- @keyframes changeAudioAnime {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
- }
- .container .content {
- position: absolute;
- z-index: 99;
- width: 750rpx;
- height: 1624rpx;
- background: #0000008a;
- animation: 1s contentAnime linear forwards;
- }
- @keyframes contentAnime {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
- }
- .container .content .videoLayer {
- width: 100vw;
- height: 100vh;
- position: absolute;
- top: 0;
- left: 0;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .container .content .videoLayer .videoCloseTips {
- position: absolute;
- top: 990rpx;
- left: 50%;
- transform: translateX(-50%);
- width: 199rpx;
- height: 26rpx;
- animation: 1s videoCloseTipsAnime linear 2s alternate infinite;
- }
- @keyframes videoCloseTipsAnime {
- from {
- opacity: 0.5;
- }
- to {
- opacity: 1;
- }
- }
- .container .content .videoLayer .videoCloseTips image {
- width: 100%;
- height: 100%;
- }
- .container .content .videoBox {
- position: absolute;
- top: 0;
- left: 0;
- width: 100vw;
- height: 100vh;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .container .content .videoBox .closeVideoLayer {
- position: absolute;
- top: 0;
- left: 0;
- width: 100vw;
- height: 100vh;
- }
- .container .content .videoBox .videoBorder {
- position: relative;
- width: 100vw;
- }
- .container .content .videoBox .videoBorder .videoTitle {
- position: absolute;
- top: -50rpx;
- left: 50%;
- transform: translateX(-50%);
- max-width: 740rpx;
- min-width: 644rpx;
- height: 37rpx;
- }
-
- .container .content .videoBox .videoBorder .videoTitle image {
- width: 100%;
- height: 100%;
- }
- .container .content .videoBox .videoBorder video {
- width: 100vw;
- border-top: 2px solid #a9f9e5;
- border-bottom: 2px solid #a9f9e5;
- }
- .container .containerBg .point image {
- width: 100%;
- height: 100%;
- will-change: transform;
- }
- .container .content .imageBox {
- position: absolute;
- z-index: 99;
- width: 100vw;
- height: 100vh;
- }
- .container .content .imageBox .textBox {
- position: absolute;
- right: 135rpx;
- top: 430rpx;
- width: 537rpx;
- height: 646rpx;
- }
- .container .content .imageBox .textBox image {
- width: 100%;
- height: 100%;
- }
- .container .content .imageBox .textBox .closeImgContent {
- position: absolute;
- right: 14rpx;
- top: 0rpx;
- width: 55rpx;
- height: 55rpx;
- z-index: 99;
- }
- </style>
|