You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
808 lines
19 KiB
808 lines
19 KiB
<template>
|
|
<div class="wheel-container">
|
|
<!-- 顶部区域 -->
|
|
<div class="top-section">
|
|
<div class="expire-time">财富金轮到期时间:{{ expireTime }}</div>
|
|
<div class="top-right">
|
|
<div class="icon-item">
|
|
<img :src="historyImg" class="history-icon" alt="历史记录">
|
|
<span class="icon-text">历史记录</span>
|
|
</div>
|
|
<div class="icon-item" @click="handleRuleClick">
|
|
<img :src="ruleImg" class="rule-icon" alt="活动规则">
|
|
<span class="icon-text">活动规则</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 主标题图片 -->
|
|
<img :src="titleImg" class="title-img" alt="转动财富金轮 开启财富人生">
|
|
|
|
<!-- 转盘区域 -->
|
|
<div class="wheel-section">
|
|
<div class="wheel-wrapper">
|
|
<!-- 转盘图片尺寸:333x333 -->
|
|
<img
|
|
:src="wheelImg"
|
|
class="wheel-img"
|
|
:class="{ spinning: isSpinning }"
|
|
:style="{ transform: `rotate(${currentRotation}deg)` }"
|
|
alt="财富金轮"
|
|
ref="wheel"
|
|
>
|
|
<!-- 指针图片尺寸:137x137 -->
|
|
<img :src="pointerImg" class="pointer-img" alt="指针">
|
|
<!-- 指针盖图片尺寸:104x106 -->
|
|
<img :src="pointerCoverImg" class="pointer-cover-img" alt="指针盖">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 剩余次数 -->
|
|
<div class="remaining-section">
|
|
<img :src="remainingBgImg" class="remaining-bg" alt="今日剩余">
|
|
<span class="remaining-text">今日剩余:{{ remainingTimes }}次</span>
|
|
</div>
|
|
|
|
<!-- 转动按钮 -->
|
|
<button
|
|
class="spin-btn"
|
|
:disabled="isSpinning || showPrizeModal || showRuleModal || isFirstVisit || remainingTimes === 0"
|
|
@click="handleSpin"
|
|
>
|
|
<img
|
|
:src="(remainingTimes > 0 && !showPrizeModal && !showRuleModal && !isFirstVisit) ? spinBtnImg : disabledSpinBtnImg"
|
|
alt="转动金轮"
|
|
class="spin-btn-img"
|
|
>
|
|
</button>
|
|
|
|
<!-- 中奖弹窗 -->
|
|
<div class="prize-modal" v-if="showPrizeModal">
|
|
<div class="modal-overlay" @click="closeModal"></div>
|
|
<div class="modal-content">
|
|
<img :src="modalBgImg" class="modal-bg" alt="弹窗背景">
|
|
<!-- 右上角关闭按钮 -->
|
|
<button class="close-modal" @click="closeModal">
|
|
<img :src="closeBtnImg" alt="关闭弹窗">
|
|
</button>
|
|
<div class="prize-info">
|
|
<div class="prize-title">{{ prizeMessage }}</div>
|
|
<div class="prize-amount-wrapper">
|
|
<img :src="prizeAmountImg" class="prize-amount-bg" alt="奖品数量背景">
|
|
<div class="prize-amount">{{ prizeAmount }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 剩余次数为0时的提示弹窗 -->
|
|
<div class="no-times-modal" v-if="showNoTimesModal">
|
|
<div class="modal-overlay" @click="closeNoTimesModal"></div>
|
|
<div class="no-times-content">
|
|
<img :src="noTimesImg" class="no-times-bg" alt="今日次数已用完">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 活动规则弹窗 -->
|
|
<div class="rule-modal" v-if="showRuleModal">
|
|
<div class="modal-overlay" @click="closeRuleModal"></div>
|
|
<div class="rule-content">
|
|
<img :src="ruleBgImg" class="rule-bg" alt="活动规则背景">
|
|
<!-- 右上角关闭按钮 -->
|
|
<button class="close-rule-btn" @click="closeRuleModal">
|
|
<img :src="closeRuleBtnImg" alt="关闭活动规则">
|
|
</button>
|
|
<div class="rule-text">
|
|
<div class="rule-line">1.在财富金轮使用期限内,每天可以转动一次</div>
|
|
<div class="rule-line">2.通过财富金轮可以获得免费Tonken和背包礼物等</div>
|
|
<div class="rule-line">3.用户通过财富金轮获得的物品以最终展示结果为准</div>
|
|
<div class="rule-line">4.Homily Link平台拥有最终解释权</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 首次访问活动规则弹窗 -->
|
|
<div class="rule-modal" v-if="isFirstVisit">
|
|
<div class="modal-overlay" @click="closeFirstVisitModal"></div>
|
|
<div class="rule-content">
|
|
<img :src="ruleBgImg" class="rule-bg" alt="活动规则背景">
|
|
<!-- 右上角关闭按钮 -->
|
|
<button class="close-rule-btn" @click="closeFirstVisitModal">
|
|
<img :src="closeRuleBtnImg" alt="关闭活动规则">
|
|
</button>
|
|
<div class="rule-text">
|
|
<div class="rule-line">1.在财富金轮使用期限内,每天可以转动一次</div>
|
|
<div class="rule-line">2.通过财富金轮可以获得免费Tonken和背包礼物等</div>
|
|
<div class="rule-line">3.用户通过财富金轮获得的物品以最终展示结果为准</div>
|
|
<div class="rule-line">4.Homily Link平台拥有最终解释权</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { permissionApi, lotteryApi } from '@/api/goldenWheel'
|
|
export default {
|
|
name: 'FortuneWheel',
|
|
data() {
|
|
return {
|
|
// 图片资源
|
|
historyImg: 'https://d31zlh4on95l9h.cloudfront.net/images/aed693de6beb9faae015fd0628c4f052.png',
|
|
ruleImg: 'https://d31zlh4on95l9h.cloudfront.net/images/9a3f7680b29e31b60151cf562c0d43cb.png',
|
|
homeImg: 'https://d31zlh4on95l9h.cloudfront.net/images/453475456dad8e6832e9904c901c1274.png',
|
|
titleImg: 'https://d31zlh4on95l9h.cloudfront.net/images/a87d19806fed47b7fdf18d4b5dd70e65.png',
|
|
wheelImg: 'https://d31zlh4on95l9h.cloudfront.net/images/d925f375c9ef15a751500ae130d91fe5.png',
|
|
pointerImg: 'https://d31zlh4on95l9h.cloudfront.net/images/9c09631c202b78cc06b8935c17431dac.png',
|
|
pointerCoverImg: 'https://d31zlh4on95l9h.cloudfront.net/images/536c171c263990b12f1cc0a6e511b5e7.png',
|
|
remainingBgImg: 'https://d31zlh4on95l9h.cloudfront.net/images/a43f0c383d55fc56b34768f039a401a8.png',
|
|
spinBtnImg: 'https://d31zlh4on95l9h.cloudfront.net/images/11b749e0fd4b08238980b74c6e80b2e6.png',
|
|
disabledSpinBtnImg: 'https://d31zlh4on95l9h.cloudfront.net/images/9b7383c1f80bb32a279791879947791a.png',
|
|
modalBgImg: 'https://d31zlh4on95l9h.cloudfront.net/images/f75ce9ca2703662fd3176dd0493f6d7b.png',
|
|
prizeAmountImg: 'https://d31zlh4on95l9h.cloudfront.net/images/878b8ea0c78bcafdaf4f6eb63a0b2eef.png',
|
|
closeBtnImg: 'https://d31zlh4on95l9h.cloudfront.net/images/453475456dad8e6832e9904c901c1274.png',
|
|
noTimesImg: 'https://d31zlh4on95l9h.cloudfront.net/images/a67e8b3de6e441af7bcb8fbbb2153ec2.png',
|
|
ruleBgImg: 'https://d31zlh4on95l9h.cloudfront.net/images/9f585ee0ab251f348a4568355ad36816.png',
|
|
closeRuleBtnImg: 'https://d31zlh4on95l9h.cloudfront.net/images/ca2ddd411ffb85968bc261382477c984.png',
|
|
|
|
// 数据
|
|
token: '',
|
|
expireTime: '',
|
|
remainingTimes: 0,
|
|
isSpinning: false,
|
|
showPrizeModal: false,
|
|
showNoTimesModal: false,
|
|
showRuleModal: false,
|
|
isFirstVisit: true,
|
|
currentRotation: 0,
|
|
noTimesTimer: null,
|
|
prizeMessage: '',
|
|
prizeAmount: ''
|
|
}
|
|
},
|
|
mounted() {
|
|
this.token = decodeURIComponent(this.getQueryString('token'))
|
|
// 调用API获取数据
|
|
this.fetchWheelInfo();
|
|
this.getTokenFromURL();
|
|
},
|
|
methods: {
|
|
getQueryString(name) {
|
|
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
|
|
var r = window.location.search.substr(1).match(reg);
|
|
console.log("获取token方法getQueryString"+reg)
|
|
console.log("获取token方法getQueryString"+r)
|
|
if (r != null) {
|
|
return unescape(r[2]);
|
|
}
|
|
return null;
|
|
},
|
|
getTokenFromURL() {
|
|
// 使用URLSearchParams API获取token参数
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
const tokenParam = urlParams.get('token');
|
|
console.log("getTokenFromURL"+tokenParam)
|
|
if (tokenParam) {
|
|
this.token = decodeURIComponent(tokenParam);
|
|
console.log("getTokenFromURL"+this.token)
|
|
console.log('获取到Token:', this.token);
|
|
} else {
|
|
console.log('URL中没有找到token参数');
|
|
}
|
|
},
|
|
// 调用API获取财富金轮信息
|
|
fetchWheelInfo() {
|
|
const token = 'pC134lIG1xDIbIi1ohnnbZi0+fEeMx8pywnIlrmTxdwROKkuwWqAWu9orpkpeXVqL98DPfeonNYpHv+mucA';
|
|
|
|
permissionApi({ token }).then(res => {
|
|
if(res.code === 200){
|
|
this.expireTime = res.data.deadline;
|
|
this.remainingTimes = res.data.count;
|
|
} else {
|
|
console.error('API返回错误:', res.msg);
|
|
}
|
|
}).catch(error => {
|
|
console.error('API调用失败:', error);
|
|
});
|
|
},
|
|
|
|
// 调用抽奖API获取奖品信息
|
|
fetchPrizeInfo() {
|
|
const token = 'pC134lIG1xDIbIi1ohnnbZi0+fEeMx8pywnIlrmTxdwROKkuwWqAWu9orpkpeXVqL98DPfeonNYpHv+mucA';
|
|
|
|
return lotteryApi({ token }).then(res => {
|
|
if(res.code === 200){
|
|
// 解析API返回的字符串数据
|
|
const prizeData = res.data;
|
|
// 假设返回格式为 "恭喜您获得卡券 2"
|
|
// 这里可以根据实际返回格式进行调整
|
|
const parts = prizeData.split(' ');
|
|
this.prizeMessage = parts.slice(0, -1).join(' '); // 获取除最后一部分外的所有部分
|
|
this.prizeAmount = parts[parts.length - 1]; // 获取最后一部分作为奖品数量
|
|
|
|
// 抽奖成功后重新获取剩余次数
|
|
this.fetchWheelInfo();
|
|
|
|
return true;
|
|
} else {
|
|
console.error('抽奖API返回错误:', res.msg);
|
|
// 设置默认值
|
|
this.prizeMessage = '抽奖失败';
|
|
this.prizeAmount = '请重试';
|
|
return false;
|
|
}
|
|
}).catch(error => {
|
|
console.error('抽奖API调用失败:', error);
|
|
// 设置默认值
|
|
this.prizeMessage = '网络错误';
|
|
this.prizeAmount = '请重试';
|
|
return false;
|
|
});
|
|
},
|
|
|
|
// 处理转动
|
|
async handleSpin() {
|
|
if (this.showRuleModal || this.isFirstVisit) return;
|
|
|
|
if (this.remainingTimes <= 0) {
|
|
this.showNoTimesModal = true;
|
|
|
|
if (this.noTimesTimer) {
|
|
clearTimeout(this.noTimesTimer);
|
|
}
|
|
this.noTimesTimer = setTimeout(() => {
|
|
this.showNoTimesModal = false;
|
|
}, 3000);
|
|
|
|
return;
|
|
}
|
|
|
|
if (this.isSpinning) return;
|
|
|
|
this.isSpinning = true;
|
|
|
|
// 开始旋转动画
|
|
const newRotation = this.currentRotation + 1440;
|
|
this.currentRotation = newRotation;
|
|
|
|
// 调用抽奖API获取奖品信息
|
|
const success = await this.fetchPrizeInfo();
|
|
|
|
setTimeout(() => {
|
|
this.isSpinning = false;
|
|
|
|
if (success) {
|
|
setTimeout(() => {
|
|
this.showPrizeModal = true;
|
|
}, 500);
|
|
}
|
|
}, 3000);
|
|
},
|
|
|
|
// 处理活动规则点击
|
|
handleRuleClick() {
|
|
this.showRuleModal = true;
|
|
},
|
|
|
|
// 关闭弹窗
|
|
closeModal() {
|
|
this.showPrizeModal = false;
|
|
},
|
|
|
|
// 关闭无次数提示弹窗
|
|
closeNoTimesModal() {
|
|
this.showNoTimesModal = false;
|
|
if (this.noTimesTimer) {
|
|
clearTimeout(this.noTimesTimer);
|
|
}
|
|
},
|
|
|
|
// 关闭活动规则弹窗
|
|
closeRuleModal() {
|
|
this.showRuleModal = false;
|
|
},
|
|
|
|
// 关闭首次访问弹窗
|
|
closeFirstVisitModal() {
|
|
this.isFirstVisit = false;
|
|
},
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.wheel-container {
|
|
min-height: 100vh;
|
|
background-image: url('https://d31zlh4on95l9h.cloudfront.net/images/aec2d399d578ab0a97d72bc8628433bb.png');
|
|
background-size: cover;
|
|
background-position: bottom center;
|
|
padding: 15px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
position: relative;
|
|
}
|
|
|
|
/* 顶部区域样式 */
|
|
.top-section {
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
margin-bottom: 15px;
|
|
}
|
|
|
|
.expire-time {
|
|
color: #fff;
|
|
font-size: 12px;
|
|
font-weight: bold;
|
|
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
|
|
margin: 11px 0 0 12px;
|
|
}
|
|
|
|
.top-right {
|
|
display: flex;
|
|
gap: 20px;
|
|
align-items: center;
|
|
}
|
|
|
|
.icon-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 4px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.history-icon, .rule-icon, .home-icon {
|
|
width: 25px;
|
|
height: 25px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.icon-text {
|
|
color: #fff;
|
|
font-size: 11px;
|
|
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
|
|
}
|
|
|
|
/* 主标题图片样式 */
|
|
.title-img {
|
|
width: 327px;
|
|
height: 144px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
/* 转盘区域样式 */
|
|
.wheel-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
margin-bottom: 15px;
|
|
}
|
|
|
|
.wheel-wrapper {
|
|
position: relative;
|
|
width: 333px;
|
|
height: 333px;
|
|
}
|
|
|
|
.wheel-img {
|
|
width: 100%;
|
|
height: 100%;
|
|
transform-origin: center;
|
|
will-change: transform;
|
|
transition: transform 0.3s ease-out;
|
|
}
|
|
|
|
.wheel-img.spinning {
|
|
animation: optimal-spin 3s ease-out forwards;
|
|
}
|
|
|
|
@keyframes optimal-spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
animation-timing-function: ease-in;
|
|
}
|
|
70% {
|
|
transform: rotate(1260deg);
|
|
}
|
|
100% {
|
|
transform: rotate(1440deg);
|
|
}
|
|
}
|
|
|
|
/* 指针样式 */
|
|
.pointer-img {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 137px;
|
|
height: 137px;
|
|
transform: translate(-50%, -50%);
|
|
z-index: 2;
|
|
}
|
|
|
|
/* 指针盖样式 */
|
|
.pointer-cover-img {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 104px;
|
|
height: 106px;
|
|
transform: translate(-50%, -50%);
|
|
z-index: 3;
|
|
}
|
|
|
|
/* 剩余次数样式 */
|
|
.remaining-section {
|
|
position: relative;
|
|
margin-bottom: 20px;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: -5px;
|
|
}
|
|
|
|
.remaining-bg {
|
|
width: 104px;
|
|
height: 21.5px;
|
|
}
|
|
|
|
.remaining-text {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
color: #fff;
|
|
font-size: 12px;
|
|
font-weight: bold;
|
|
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
|
|
width: 100%;
|
|
text-align: center;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* 转动按钮样式 */
|
|
.spin-btn {
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
transition: transform 0.2s ease;
|
|
}
|
|
|
|
.spin-btn:active:not(:disabled) {
|
|
transform: scale(0.95);
|
|
}
|
|
|
|
.spin-btn:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.spin-btn-img {
|
|
width: 240px;
|
|
height: 94px;
|
|
}
|
|
|
|
/* 弹窗样式 */
|
|
.prize-modal, .no-times-modal, .rule-modal {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 1000;
|
|
}
|
|
|
|
.modal-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: rgba(0, 0, 0, 0.7);
|
|
}
|
|
|
|
/* 中奖弹窗内容区域尺寸为333x377 */
|
|
.modal-content {
|
|
position: relative;
|
|
width: 333px;
|
|
height: 377px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 1001;
|
|
animation: modal-appear 0.3s ease-out;
|
|
}
|
|
|
|
@keyframes modal-appear {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.8) translateY(-20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1) translateY(0);
|
|
}
|
|
}
|
|
|
|
.modal-bg {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: -1;
|
|
}
|
|
|
|
/* 无次数提示弹窗样式 */
|
|
.no-times-content {
|
|
position: relative;
|
|
width: 333px;
|
|
height: 79px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 1001;
|
|
margin-top: 250px;
|
|
animation: slide-up 0.3s ease-out;
|
|
}
|
|
|
|
@keyframes slide-up {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.no-times-bg {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: -1;
|
|
}
|
|
|
|
/* 弹窗内容样式 */
|
|
.prize-info {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
text-align: center;
|
|
z-index: 2;
|
|
margin-top: 120px;
|
|
}
|
|
|
|
.prize-title {
|
|
color: #B82525;
|
|
font-size: 25px;
|
|
font-weight: bold;
|
|
margin-bottom: 35px;
|
|
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
|
|
animation: text-pulse 2s infinite;
|
|
}
|
|
|
|
@keyframes text-pulse {
|
|
0%, 100% {
|
|
transform: scale(1);
|
|
}
|
|
50% {
|
|
transform: scale(1.05);
|
|
}
|
|
}
|
|
|
|
.prize-amount-wrapper {
|
|
position: relative;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
/* 奖品数量背景图片尺寸为272x58 */
|
|
.prize-amount-bg {
|
|
width: 272px;
|
|
height: 58px;
|
|
}
|
|
|
|
.prize-amount {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
color: #FFFFFF;
|
|
font-size: 25px;
|
|
font-weight: bold;
|
|
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
|
|
}
|
|
|
|
/* 关闭按钮样式 - 修改位置 */
|
|
.close-modal {
|
|
position: absolute;
|
|
top: 115px;
|
|
right: 22px;
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
z-index: 1002;
|
|
transition: transform 0.2s ease;
|
|
}
|
|
|
|
.close-modal:hover {
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.close-modal img {
|
|
width: 35px;
|
|
height: 35px;
|
|
}
|
|
|
|
/* 活动规则弹窗样式 - 整体下移 */
|
|
.rule-content {
|
|
position: relative;
|
|
width: 333px;
|
|
height: 239px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
z-index: 1001;
|
|
animation: modal-appear 0.3s ease-out;
|
|
margin-top: 80px;
|
|
}
|
|
|
|
.rule-bg {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: -1;
|
|
}
|
|
|
|
/* 活动规则关闭按钮 - 修复:确保按钮层级高于背景 */
|
|
.close-rule-btn {
|
|
position: absolute;
|
|
top: 45.5px;
|
|
right: 35.5px;
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
z-index: 1002;
|
|
transition: transform 0.2s ease;
|
|
padding: 0;
|
|
width: 30px;
|
|
height: 30px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.close-rule-btn:hover {
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.close-rule-btn img {
|
|
width: 20px;
|
|
height: 20px;
|
|
display: block;
|
|
}
|
|
|
|
/* 活动规则文本 */
|
|
.rule-text {
|
|
position: absolute;
|
|
top: 83px;
|
|
left: 27px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 9.15px;
|
|
width: calc(100% - 54px);
|
|
}
|
|
|
|
.rule-line {
|
|
color: #FFFFFF;
|
|
font-size: 12px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/* 媒体查询 - 适配小屏幕 */
|
|
@media (max-width: 380px) {
|
|
.title-img {
|
|
width: 280px;
|
|
height: 123px;
|
|
}
|
|
|
|
.wheel-wrapper {
|
|
width: 280px;
|
|
height: 280px;
|
|
}
|
|
|
|
.pointer-img {
|
|
width: 115px;
|
|
height: 115px;
|
|
}
|
|
|
|
.pointer-cover-img {
|
|
width: 87px;
|
|
height: 89px;
|
|
}
|
|
|
|
.spin-btn-img {
|
|
width: 200px;
|
|
height: 78px;
|
|
}
|
|
|
|
.top-right {
|
|
gap: 15px;
|
|
}
|
|
|
|
.remaining-section {
|
|
margin-top: -8px;
|
|
}
|
|
|
|
/* 小屏幕适配中奖弹窗 */
|
|
.modal-content {
|
|
width: 300px;
|
|
height: 340px;
|
|
}
|
|
.prize-info {
|
|
margin-top: 100px;
|
|
}
|
|
|
|
.prize-title {
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
.prize-amount-wrapper {
|
|
margin-top: 18px;
|
|
}
|
|
|
|
.prize-amount-bg {
|
|
width: 240px;
|
|
height: 51px;
|
|
}
|
|
|
|
.prize-amount {
|
|
font-size: 22px;
|
|
}
|
|
|
|
.no-times-content {
|
|
width: 280px;
|
|
height: 66px;
|
|
margin-top: 200px;
|
|
}
|
|
|
|
/* 小屏幕适配关闭按钮位置 */
|
|
.close-modal {
|
|
top: 100px;
|
|
right: 18px;
|
|
}
|
|
.close-modal img {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
/* 小屏幕适配活动规则弹窗 */
|
|
.rule-content {
|
|
width: 300px;
|
|
height: 215px;
|
|
margin-top: 70px;
|
|
}
|
|
|
|
.close-rule-btn {
|
|
top: 41px;
|
|
right: 32px;
|
|
}
|
|
|
|
.rule-text {
|
|
top: 75px;
|
|
left: 24px;
|
|
width: calc(100% - 48px);
|
|
}
|
|
}
|
|
</style>
|