Browse Source

调整样式

dev
zhaoruhui 1 day ago
parent
commit
92a8829efc
  1. BIN
      dev/img/edifier.jpg
  2. BIN
      dev/img/huawei.png
  3. BIN
      dev/img/ipad.jpg
  4. BIN
      dev/img/kindle.jpg
  5. BIN
      dev/img/mbp.jpg
  6. BIN
      dev/img/secrit.jpg
  7. BIN
      dev/img/spark.jpg
  8. 17
      dev/index.html
  9. 1
      dev/static/css/Login-1b02a75f.css
  10. 7
      dev/static/css/cj-98036a19.css
  11. 1
      dev/static/css/index-257a3075.css
  12. 1
      dev/static/css/index-ad844859.css
  13. 1
      dev/static/css/index-c1620e5d.css
  14. BIN
      dev/static/images/bg-80dfcc4a.png
  15. BIN
      dev/static/images/bg@2x-01be3b4d.png
  16. BIN
      dev/static/images/daijiemi-7d626f4d.png
  17. BIN
      dev/static/images/rocket-46260309.gif
  18. BIN
      dev/static/images/助力已达标-2cf4e5b8.png
  19. BIN
      dev/static/images/助力成功-fda218bf.png
  20. BIN
      dev/static/images/助力美股-ee46342f.png
  21. BIN
      dev/static/images/助力美股享实时数据-91d6496d.png
  22. BIN
      dev/static/images/周年庆装饰-b90d7f01.png
  23. BIN
      dev/static/images/底座-d57f1403.png
  24. BIN
      dev/static/images/待揭秘-b31d51f6.png
  25. BIN
      dev/static/images/手机bg-38d75deb.png
  26. BIN
      dev/static/images/手机助力美股享实时数据-db5fb2d6.png
  27. BIN
      dev/static/images/手机周年庆装饰-26ae2792.png
  28. BIN
      dev/static/images/手机组2-df0a6271.png
  29. BIN
      dev/static/images/抽奖按钮-da26972e.png
  30. BIN
      dev/static/images/框-af1a22b7.png
  31. BIN
      dev/static/images/活动需知-ad87c54a.png
  32. BIN
      dev/static/images/火箭-cf3de9b4.png
  33. BIN
      dev/static/images/登录背景-9cf07d78.png
  34. BIN
      dev/static/images/知道了-085c7190.png
  35. BIN
      dev/static/images/美股-f2f2986e.png
  36. BIN
      dev/static/images/美股已助力-c4b96df4.png
  37. 1
      dev/static/js/Login-3131a6ec.js
  38. 9
      dev/static/js/cj-b2bcbe0f.js
  39. 6
      dev/static/js/dong-027197ce.js
  40. 1
      dev/static/js/homePage-2cfe0142.js
  41. 1
      dev/static/js/index-0be9f2d6.js
  42. 47
      dev/static/js/index-77fd5149.js
  43. 1
      dev/static/js/index-c12a00e6.js
  44. 1
      dev/static/js/request-eed9b906.js
  45. BIN
      dev/static/media/dong-621ffe30.mp3
  46. BIN
      dev/static/media/worldcup-7ab5f954.mp3
  47. BIN
      dev/static/webp/qilin-dab2c0e8.webp
  48. 1
      dev/vite.svg
  49. 304
      src/views/platform/anniversary.vue

BIN
dev/img/edifier.jpg

After

Width: 198  |  Height: 198  |  Size: 23 KiB

BIN
dev/img/huawei.png

After

Width: 200  |  Height: 200  |  Size: 49 KiB

BIN
dev/img/ipad.jpg

After

Width: 220  |  Height: 220  |  Size: 44 KiB

BIN
dev/img/kindle.jpg

After

Width: 289  |  Height: 289  |  Size: 42 KiB

BIN
dev/img/mbp.jpg

After

Width: 220  |  Height: 220  |  Size: 6.9 KiB

BIN
dev/img/secrit.jpg

After

Width: 224  |  Height: 224  |  Size: 12 KiB

BIN
dev/img/spark.jpg

After

Width: 260  |  Height: 260  |  Size: 37 KiB

17
dev/index.html

@ -0,0 +1,17 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/test/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>弘历周年庆</title>
<script type="module" crossorigin src="/test/static/js/index-77fd5149.js"></script>
<link rel="stylesheet" href="/test/static/css/index-c1620e5d.css">
</head>
<body>
<!-- <script src="/src/utils/tween.min.js"></script> -->
<div id="app"></div>
</body>
</html>

1
dev/static/css/Login-1b02a75f.css

@ -0,0 +1 @@
.login-container[data-v-b3aae28a]{background-image:url(/test/static/images/登录背景-9cf07d78.png);background-position:center;background-size:cover;height:100vh;width:100vw;position:fixed;top:0;left:0}.login-card[data-v-b3aae28a]{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);width:450px;height:285px;padding:2.5rem;background:rgba(255,255,255,.3);border-radius:8px;box-shadow:0 2px 10px #0000001a;box-sizing:border-box;z-index:1}input[data-v-b3aae28a]{width:100%;padding:1.2rem;border:1px solid #ddd;border-radius:4px;font-size:1.3rem;margin-bottom:2.5rem;box-sizing:border-box}.login-button[data-v-b3aae28a]{width:100%;padding:1.2rem;background-color:#e92821a3;color:#fff;border:none;border-radius:4px;font-size:1.3rem;cursor:pointer;transition:background-color .3s;box-sizing:border-box}.login-button[data-v-b3aae28a]:hover{transform:scale(1.03)}

7
dev/static/css/cj-98036a19.css
File diff suppressed because it is too large
View File

1
dev/static/css/index-257a3075.css
File diff suppressed because it is too large
View File

1
dev/static/css/index-ad844859.css
File diff suppressed because it is too large
View File

1
dev/static/css/index-c1620e5d.css

@ -0,0 +1 @@
body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}

BIN
dev/static/images/bg-80dfcc4a.png

After

Width: 1920  |  Height: 1080  |  Size: 174 KiB

BIN
dev/static/images/bg@2x-01be3b4d.png

After

Width: 1920  |  Height: 1080  |  Size: 492 KiB

BIN
dev/static/images/daijiemi-7d626f4d.png

After

Width: 766  |  Height: 220  |  Size: 43 KiB

BIN
dev/static/images/rocket-46260309.gif

After

Width: 500  |  Height: 500  |  Size: 932 KiB

BIN
dev/static/images/助力已达标-2cf4e5b8.png

After

Width: 402  |  Height: 88  |  Size: 13 KiB

BIN
dev/static/images/助力成功-fda218bf.png

After

Width: 624  |  Height: 754  |  Size: 92 KiB

BIN
dev/static/images/助力美股-ee46342f.png

After

Width: 402  |  Height: 88  |  Size: 11 KiB

BIN
dev/static/images/助力美股享实时数据-91d6496d.png

After

Width: 852  |  Height: 98  |  Size: 40 KiB

BIN
dev/static/images/周年庆装饰-b90d7f01.png

After

Width: 708  |  Height: 267  |  Size: 155 KiB

BIN
dev/static/images/底座-d57f1403.png

After

Width: 390  |  Height: 220  |  Size: 9.5 KiB

BIN
dev/static/images/待揭秘-b31d51f6.png

After

Width: 383  |  Height: 110  |  Size: 15 KiB

BIN
dev/static/images/手机bg-38d75deb.png

After

Width: 750  |  Height: 1624  |  Size: 177 KiB

BIN
dev/static/images/手机助力美股享实时数据-db5fb2d6.png

After

Width: 492  |  Height: 229  |  Size: 14 KiB

BIN
dev/static/images/手机周年庆装饰-26ae2792.png

After

Width: 571  |  Height: 225  |  Size: 109 KiB

BIN
dev/static/images/手机组2-df0a6271.png

After

Width: 622  |  Height: 938  |  Size: 134 KiB

BIN
dev/static/images/抽奖按钮-da26972e.png

After

Width: 259  |  Height: 95  |  Size: 8.1 KiB

BIN
dev/static/images/框-af1a22b7.png

After

Width: 790  |  Height: 586  |  Size: 25 KiB

BIN
dev/static/images/活动需知-ad87c54a.png

After

Width: 100  |  Height: 70  |  Size: 4.2 KiB

BIN
dev/static/images/火箭-cf3de9b4.png

After

Width: 219  |  Height: 586  |  Size: 29 KiB

BIN
dev/static/images/登录背景-9cf07d78.png

After

Width: 5760  |  Height: 3240  |  Size: 251 KiB

BIN
dev/static/images/知道了-085c7190.png

After

Width: 228  |  Height: 194  |  Size: 8.2 KiB

BIN
dev/static/images/美股-f2f2986e.png

After

Width: 1319  |  Height: 773  |  Size: 243 KiB

BIN
dev/static/images/美股已助力-c4b96df4.png

After

Width: 402  |  Height: 88  |  Size: 9.9 KiB

1
dev/static/js/Login-3131a6ec.js

@ -0,0 +1 @@
import{_ as a,f as s,u as l,B as o,o as e,c as t,a as n,q as u,C as i,D as r}from"./index-77fd5149.js";const p={class:"login-container"},d={class:"login-card"},c={class:"form-group"},v=a({__name:"Login",setup(a){const v=s(""),g=l(),m=o(),h=()=>{""!==v.value?"hl2025"==v.value?(m.login(),g.push("/hxlCj")):"hl2024"===v.value?(m.login(),g.push("/choujiang")):alert("密码错误,请重试"):alert("请输入密码")};return(a,s)=>(e(),t("div",p,[n("div",d,[n("form",{onSubmit:u(h,["prevent"])},[n("div",c,[i(n("input",{type:"password",id:"password","onUpdate:modelValue":s[0]||(s[0]=a=>v.value=a),placeholder:"请输入密码"},null,512),[[r,v.value]])]),s[1]||(s[1]=n("button",{type:"submit",class:"login-button"},"进入抽奖",-1))],32)])]))}},[["__scopeId","data-v-b3aae28a"]]);export{v as default};

9
dev/static/js/cj-b2bcbe0f.js
File diff suppressed because it is too large
View File

6
dev/static/js/dong-027197ce.js
File diff suppressed because it is too large
View File

1
dev/static/js/homePage-2cfe0142.js

@ -0,0 +1 @@
import{u as o,r as s,o as a,c as n,a as t,b as u,d as c}from"./index-77fd5149.js";const e={__name:"homePage",setup(e){const r=o();return(o,e)=>{const h=s("Mascot");return a(),n("div",null,[t("button",{onClick:e[0]||(e[0]=o=>u(r).push("/choujiang"))},"抽奖"),t("button",{onClick:e[1]||(e[1]=o=>u(r).push("/zhongchou"))},"众筹"),c(h)])}}};export{e as default};

1
dev/static/js/index-0be9f2d6.js
File diff suppressed because it is too large
View File

47
dev/static/js/index-77fd5149.js
File diff suppressed because it is too large
View File

1
dev/static/js/index-c12a00e6.js
File diff suppressed because it is too large
View File

1
dev/static/js/request-eed9b906.js
File diff suppressed because it is too large
View File

BIN
dev/static/media/dong-621ffe30.mp3

BIN
dev/static/media/worldcup-7ab5f954.mp3

BIN
dev/static/webp/qilin-dab2c0e8.webp

1
dev/vite.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

304
src/views/platform/anniversary.vue

@ -4,16 +4,17 @@
<!-- 余额显示区域 -->
<div class="balance">{{ balance }}</div>
<!-- 光效背景 -->
<div class="guang" :style="{
backgroundImage: `url(${guang})`,
transform: `translate(-50%, -50%) rotate(${guangRotation}deg)`
}"></div>
<!-- 光效背景只在剩余次数为0时显示 -->
<div
class="guang"
v-if="drawCount >= 8"
:style="{ backgroundImage: `url(${guang})` }"
></div>
<!-- 转盘底座 -->
<div class="pandi" :style="{ backgroundImage: `url(${pandi})` }"></div>
<!-- 转盘主体 -->
<!-- 转盘主体 -->
<div
class="pan"
:style="{
@ -28,7 +29,7 @@
class="prize-container"
:style="getPrizeContainerStyle(index, rotation)"
>
<!-- 奖品图片使用修改后的大小 -->
<!-- 奖品图片 -->
<img :src="getPrizeImage(prize.value)" class="prize-image"/>
</div>
</div>
@ -44,11 +45,24 @@
<!-- 中奖结果弹窗 -->
<transition name="flip">
<div class="result-popup" v-if="showResult">
<div class="popup-overlay"></div>
<div class="popup-content">
<div class="popup-bg" :style="{ backgroundImage: `url(${tanchuang})` }">
<!-- 添加了脉冲动画效果的中奖金额 -->
<div class="prize-value" :class="{ 'pulse-animation': showResult }">{{ resultValue }}</div>
<div class="prize-value" :class="{ 'pulse-animation': showResult }">
{{ formatPrizeValue(resultValue) }}
</div>
</div>
</div>
</div>
</transition>
<!-- 抽奖结束弹窗 -->
<transition name="flip">
<div class="result-popup" v-if="showEndPopup">
<div class="popup-content">
<div class="popup-bg" :style="{ backgroundImage: `url(${tanchuang})` }">
<div class="prize-value end-message">
抽奖结束
</div>
</div>
</div>
</div>
@ -60,50 +74,43 @@
<script setup>
import { ref, watch, onUnmounted } from 'vue'
// ========== ==========
//
//
const anniversary = new URL('@/assets/img/anniversary/anniversary.png', import.meta.url).href
//
const pandi = new URL('@/assets/img/anniversary/pandi.png', import.meta.url).href
//
const pan = new URL('@/assets/img/anniversary/pan.png', import.meta.url).href
//
const jiantou = new URL('@/assets/img/anniversary/jiantou.png', import.meta.url).href
//
const tanchuang = new URL('@/assets/img/anniversary/tanchuang1.png', import.meta.url).href
//
const tanchuang = new URL('@/assets/img/anniversary/tanchuang.png', import.meta.url).href
const guang = new URL('@/assets/img/anniversary/guang.png', import.meta.url).href
// ========== ==========
//
//
const prizePositions = [
{ value: '500', angle: 0 }, // 12
{ value: '-880', angle: 60 }, // 2
{ value: '18', angle: 120 }, // 4
{ value: '-27', angle: 180 }, // 6
{ value: '100', angle: 240 }, // 8
{ value: '-188', angle: 300 } // 10
{ value: '500', angle: 0 },
{ value: '-880', angle: 60 },
{ value: '18', angle: 120 },
{ value: '-27', angle: 180 },
{ value: '100', angle: 240 },
{ value: '-188', angle: 300 }
]
// ========== ==========
const balance = ref(8000) //
const rotation = ref(0) //
const guangRotation = ref(0) //
const isSpinning = ref(false) //
const showResult = ref(false) //
const resultValue = ref('') //
const drawCount = ref(0) //
// ========== ==========
//
//
const balance = ref(8000)
const rotation = ref(0)
const isSpinning = ref(false)
const showResult = ref(false)
const resultValue = ref('')
const drawCount = ref(0)
const showEndPopup = ref(false)
const shouldShowEndPopup = ref(false) //
//
const prizeDistribution = ref([
'-27', '-27', '-27', '-27', // -27
'18', '18', // 18
'100', // 100
'-188' // -188
'-27', '-27', '-27', '-27',
'18', '18',
'100',
'-188'
])
// ========== ==========
//
const prizeImages = {
'18': new URL('@/assets/img/anniversary/18.png', import.meta.url).href,
'-27': new URL('@/assets/img/anniversary/-27.png', import.meta.url).href,
@ -113,53 +120,36 @@ const prizeImages = {
'-880': new URL('@/assets/img/anniversary/-880.png', import.meta.url).href
}
// ========== ==========
let guangRotationInterval = null //
// +
const formatPrizeValue = (value) => {
const num = parseInt(value)
return num > 0 ? `+${value}` : value
}
//
//
watch(showResult, (newVal) => {
if (!newVal && drawCount.value < 8) {
startGuangRotation() // 8
} else {
stopGuangRotation() //
if (!newVal && shouldShowEndPopup.value) {
//
showEndPopup.value = true
shouldShowEndPopup.value = false //
// 3
setTimeout(() => {
showEndPopup.value = false
}, 3000)
}
})
//
onUnmounted(() => {
stopGuangRotation()
})
//
const startGuangRotation = () => {
if (guangRotationInterval) return
guangRotationInterval = setInterval(() => {
guangRotation.value = (guangRotation.value + 2) % 360 // 10ms2
}, 5)
}
//
const stopGuangRotation = () => {
if (guangRotationInterval) {
clearInterval(guangRotationInterval)
guangRotationInterval = null
}
}
//
const getPrizeImage = (prize) => {
return prizeImages[prize] || ''
}
//
const getPrizeContainerStyle = (index, currentRotation) => {
const prizeAngle = prizePositions[index].angle //
const radius = 100 //
const radian = prizeAngle * Math.PI / 180 //
// x,y
const prizeAngle = prizePositions[index].angle
const radius = 100
const radian = prizeAngle * Math.PI / 180
const x = Math.sin(radian) * radius
const y = -Math.cos(radian) * radius
// 使
const compensateRotation = -currentRotation
return {
@ -168,96 +158,90 @@ const getPrizeContainerStyle = (index, currentRotation) => {
top: '50%',
width: '80px',
height: '80px',
marginLeft: '-40px', //
marginTop: '-40px', //
marginLeft: '-40px',
marginTop: '-40px',
transform: `translate(${x}px, ${y}px) rotate(${compensateRotation}deg)`,
transformOrigin: 'center center',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
transition: 'transform 5s cubic-bezier(0.17, 0.67, 0.21, 0.99)' //
transition: 'transform 5s cubic-bezier(0.17, 0.67, 0.21, 0.99)'
}
}
//
const startSpin = () => {
// 8
if (isSpinning.value || drawCount.value >= 8) return
isSpinning.value = true //
showResult.value = false //
stopGuangRotation() //
isSpinning.value = true
showResult.value = false
//
const randomIndex = Math.floor(Math.random() * prizeDistribution.value.length)
const selectedPrize = prizeDistribution.value[randomIndex]
//
prizeDistribution.value.splice(randomIndex, 1)
//
const targetPrize = prizePositions.find(p => p.value === selectedPrize)
if (!targetPrize) {
isSpinning.value = false
return
}
//
const currentAngle = rotation.value % 360
let remainingAngle = (720 - currentAngle - targetPrize.angle) % 360
// 4(1440)
const totalRotation = rotation.value + 1440 + remainingAngle
//
rotation.value = totalRotation
// 5
setTimeout(() => {
isSpinning.value = false
drawCount.value++
resultValue.value = selectedPrize
showResult.value = true
// 2
//
balance.value += parseInt(selectedPrize)
//
if (drawCount.value >= 8) {
shouldShowEndPopup.value = true //
}
// 3
setTimeout(() => {
showResult.value = false
balance.value += parseInt(selectedPrize)
}, 2500)
}, 3500)
}, 5000)
}
</script>
<style scoped>
/* 容器样式 */
.container {
width: 100vw;
height: 100vh;
background-image: url(${anniversary});
background-size: 100% auto; /* 背景图宽度100%,高度自适应 */
background-image: url(@/assets/img/anniversary/anniversary.png);
background-size: 100% auto;
background-position: center center;
background-repeat: no-repeat;
background-color: #000; /* 黑色背景 */
background-color: #000;
overflow: hidden;
position: relative;
}
/* 转盘容器 */
.turntable-container {
position: relative;
width: 500px;
height: 500px;
margin: auto auto 10px; /* 居中 */
margin: auto auto 10px;
}
/* 余额显示样式 */
.balance {
position: absolute;
top: -1%;
top: 2%;
left: 50%;
transform: translateX(-50%);
font-size: 120px;
text-shadow: 0 0 20px rgba(255, 215, 0, 0.5); /* 金色发光效果 */
text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
font-weight: 900;
color: rgb(255,214,66); /* 金色文字 */
color: rgb(255, 255, 130);
z-index: 1000;
width: 150%;
text-align: center;
@ -265,10 +249,9 @@ const startSpin = () => {
letter-spacing: 2px;
}
/* 光效样式 */
.guang {
position: absolute;
top: 15%;
top: -10%;
left: 50%;
transform: translateX(-50%);
width: 500px;
@ -277,16 +260,14 @@ const startSpin = () => {
background-position: center;
background-repeat: no-repeat;
z-index: 1;
transform-origin: center center; /* 旋转中心 */
}
/* 转盘底座样式 */
.pandi {
position: absolute;
width: 90%;
height: 90%;
width: 100%;
height: 100%;
left: 50%;
transform: translateX(-50%) scale(1.8); /* 放大1.8倍 */
transform: translateX(-50%) scale(1.5);
bottom: -65%;
background-size: contain;
background-position: center bottom;
@ -294,42 +275,38 @@ const startSpin = () => {
z-index: 2;
}
/* 转盘主体样式 */
.pan {
position: absolute;
width: 67%;
height: 67%;
bottom: -78.5%;
left: 48%;
transform-origin: center center; /* 旋转中心 */
width: 62%;
height: 62%;
bottom: -69%;
left: 48.3%;
transform-origin: center center;
background-size: contain;
background-position: center;
background-repeat: no-repeat;
z-index: 3;
transition: transform 5s cubic-bezier(0.17, 0.67, 0.21, 0.99); /* 平滑旋转动画 */
transition: transform 5s cubic-bezier(0.17, 0.67, 0.21, 0.99);
}
/* 奖品容器样式 */
.prize-container {
pointer-events: none; /* 禁止鼠标事件 */
pointer-events: none;
}
/* 奖品图片样式 - 修改为更大尺寸 */
.prize-image {
width: auto;
height: 70px; /* 从60px增大到70px */
max-width: 90px; /* 从80px增大到90px */
object-fit: contain; /* 保持纵横比 */
height: 70px;
max-width: 90px;
object-fit: contain;
}
/* 开始按钮样式 */
.jiantou {
position: absolute;
width: 15%;
height: 15%;
bottom: -25.4%;
bottom: -21%;
left: 48%;
transform: translate(-50%, -50%) scale(1.5); /* 放大1.5倍 */
transform: translate(-50%, -50%) scale(1.5);
background-size: contain;
background-position: center;
background-repeat: no-repeat;
@ -337,100 +314,103 @@ const startSpin = () => {
cursor: pointer;
}
/* 禁用状态的开始按钮 */
.jiantou.disabled {
cursor: not-allowed;
opacity: 1; /* 修改为完全不透明 */
filter: grayscale(3 0%); /* 灰度效果表示禁用 */
opacity: 1;
filter: grayscale(30%);
}
/* 结果弹窗样式 */
/* 弹窗样式 */
.result-popup {
position: fixed;
top: -7%;
left: -1.5%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
display: flex;
justify-content: center;
align-items: flex-start;
z-index: 100;
align-items: center;
}
/* 弹窗内容 */
.popup-content {
position: relative;
z-index: 101;
width: 100%;
height: 100%;
}
/* 弹窗背景 */
.popup-bg {
width: 900px;
height: 900px;
position: absolute;
top: -40%;
left: 50%;
transform: translateX(-50%);
width: 800px;
height: 800px;
background-size: contain;
background-position: center;
background-repeat: no-repeat;
display: flex;
justify-content: center;
top: 80%;
align-items: center;
z-index: 101;
}
/* 奖品值样式 */
.prize-value {
font-size: 120px;
color: rgb(255,214,66); /* 金色文字 */
text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
font-weight: 900;
text-shadow: 0 0 20px rgba(255, 215, 0, 0.5); /* 发光效果 */
margin-top: 230px;
color: rgb(255, 255, 130);
margin-top: 40px;
font-family: 'Arial Black', Gadget, sans-serif;
}
/* 添加的脉冲动画效果 */
.end-message {
font-size: 100px;
color: #FFD700;
text-shadow: 0 0 15px rgba(255, 215, 0, 0.7);
}
.pulse-animation {
animation: pulse 1s infinite alternate; /* 无限循环交替动画 */
animation: pulse 1s infinite alternate;
}
/* 脉冲动画关键帧 */
@keyframes pulse {
0% {
transform: scale(1.1); /* 原始大小 */
transform: scale(1.1);
text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
}
100% {
transform: scale(1); /* 放大10% */
text-shadow: 0 0 30px rgba(255, 215, 0, 0.8); /* 更强的发光效果 */
transform: scale(1);
text-shadow: 0 0 30px rgba(255, 215, 0, 0.8);
}
}
/* 弹窗翻转动画 */
.flip-enter-active {
animation: flipIn 0.01s ease-out;
animation: flipIn 0.1s ease-out;
}
.flip-leave-active {
animation: flipOut 0.1s ease-in;
animation: flipOut 0.2s ease-in;
}
/* 弹窗进入动画 */
@keyframes flipIn {
0% {
transform: perspective(600px) rotateY(30deg); /* 从侧面翻转 */
transform: perspective(600px) rotateY(90deg);
opacity: 0;
}
100% {
transform: perspective(600px) rotateY(0deg); /* 转到正面 */
transform: perspective(600px) rotateY(0deg);
opacity: 1;
}
}
/* 弹窗退出动画 */
@keyframes flipOut {
0% {
transform: perspective(600px) rotateY(0deg); /* 从正面开始 */
transform: perspective(600px) rotateY(0deg);
opacity: 1;
}
100% {
transform: perspective(600px) rotateY(60deg); /* 转到侧面 */
transform: perspective(600px) rotateY(90deg);
opacity: 0;
}
}
Loading…
Cancel
Save