当前位置: 首页 > wzjs >正文

成都最专业做网站的关键词查网址

成都最专业做网站的,关键词查网址,wordpress+相册+时间轴,公司做自己的网站平台台🎡 使用 Vue 3 实现转盘抽奖效果 在移动端或营销活动中,转盘抽奖是一种非常常见的互动方式。本文基于 Vue 3 TypeScript 实现一个视觉炫酷、逻辑完整的转盘抽奖功能,并支持「指定奖品必中」的逻辑。 iShot_2025-05-12_11.31.27 &#x1f9f…

🎡 使用 Vue 3 实现转盘抽奖效果

在移动端或营销活动中,转盘抽奖是一种非常常见的互动方式。本文基于 Vue 3 + TypeScript 实现一个视觉炫酷、逻辑完整的转盘抽奖功能,并支持「指定奖品必中」的逻辑。

iShot_2025-05-12_11.31.27


🧰 技术栈

  • Vue 3 + Composition API
  • CSS3 动画(transform + transition)
  • 响应式布局适配(vw)

✨ 功能特性

  • 转盘顺滑旋转抽奖
  • 奖品可配置(支持设置指定中奖项)
  • 用户抽奖次数控制
  • 动画完成后触发中奖提示
  • 响应式适配设计稿

🧱 页面结构拆解

LandComponent.vue 为例,核心结构如下:

<!-- 顶部装饰图 -->
<div class="top-img" /><!-- 抽奖区域 -->
<div class="land"><img class="背景图1" /><img class="背景图2" /><!-- 转盘区域 --><div class="prize-list" ref="prizeWrap"><divclass="prize-item"v-for="(item, index) in prizeList":style="prizeStyle(index)"><p class="text" :class="index === 0 ? 'vertical-text' : ''">{{ item.name }}</p></div></div><!-- 抽奖按钮 --><div class="btn" @click="start" /><!-- 抽奖次数提示 --><div>Você ainda tem {{ drawsNum }} tentativa</div><!-- 点击领奖按钮 --><div class="receive-btn" @click="start">Clique para Ganhar</div>
</div>

🧮 奖品配置与位置布局

奖品列表

const prizeList = ref([{ name: 'Rec.100=200', type: 1 }, // 必中项{ name: '10R$ de Recarga' },{ name: 'Não Ganhou desta Vez' },{ name: '50R$ de Recarga' },{ name: '1R$ de Recarga' },{ name: '20R$ de Recarga' },{ name: 'Não Ganhou desta Vez' },
])

奖品在圆盘上的旋转角度

const priceDeg = 15 // 空出顶部角度
const rotateAngle = computed(() => (360 - priceDeg) / (prizeList.value.length - 1))

奖品布局样式

const prizeStyle = computed(() => {const angle = rotateAngle.valuereturn (i: number) => {return i === 0? `transform: rotate(51deg); ...` // 顶部中奖项: `transform: rotate(${angle * i + angle / 2 + 5}deg); ...`}
})

🎬 抽奖动画控制

旋转总角度计算

const baseRunAngle = ref(360 * 5)  // 5 需要转几圈
const totalRunAngle = computed(() => {return baseRunAngle.value + 360 - prizeId.value * rotateAngle.value - rotateAngle.value / 2 - 25
})

抽奖触发逻辑

const start = () => {if (!isRunning.value) {isRunning.value = trueprizeId.value = getRandomNum() // 决定中奖项startRun()}
}

设置旋转动画并监听结束

const startRun = () => {prizeWrap.value.style = `transform: rotate(${totalRunAngle.value}deg);transition: all 5s ease;`prizeWrap.value.addEventListener('transitionend', stopRun)
}

🎯 必中指定奖品逻辑

const getRandomNum = () => {return prizeList.value.findIndex(item => item.type === 1)
}

这段逻辑确保总是命中 type === 1 的奖品。


🛑 抽奖结束处理

const stopRun = () => {isRunning.value = falseprizeWrap.value.style = `transform: rotate(${${totalRunAngle.value - baseRunAngle.value}}deg)`setTimeout(() => {// 弹窗展示结果}, 1500)
}

📱 响应式适配

项目中使用设计稿宽度为 750px,通过以下函数将 px 转为 vw:

const pxToVw = (px: number) => (px / 750) * 100 + 'vw'

用于所有动态布局计算。


🎨 样式与动画

.prize-list {background: url('转盘背景图') no-repeat center/100% 100%;border-radius: 50%;
}
.btn {background: url('按钮图') no-repeat center/100% 100%;
}
.vertical-text {writing-mode: sideways-rl;text-orientation: upright;
}

✅ 总结

本文完整实现了一个移动端转盘抽奖功能,具备以下特点:

功能说明
动画使用 transform + transition 平滑旋转
奖品布局等分角度 + 计算偏移
指定奖品必中支持自定义中奖逻辑
转盘视觉高度还原结合背景图和动画优化

📚 参考资料

  • Vue 3 Composition API
  • MDN transform
  • CSS 动画与旋转指南

文章转载自:

http://637gKy3B.rtjhw.cn
http://CnGDbQdC.rtjhw.cn
http://0g5VJxVK.rtjhw.cn
http://V66UapUp.rtjhw.cn
http://X3wgCiVO.rtjhw.cn
http://xpa0qDVK.rtjhw.cn
http://syNvx1Vw.rtjhw.cn
http://h6NGqYiU.rtjhw.cn
http://fivYpmq5.rtjhw.cn
http://xYrZITeT.rtjhw.cn
http://0I8XFE14.rtjhw.cn
http://XB8OZbwM.rtjhw.cn
http://ewH111Ot.rtjhw.cn
http://ifyfk5DY.rtjhw.cn
http://1CiWddzf.rtjhw.cn
http://QdO4q4Ji.rtjhw.cn
http://SZ9e3zLE.rtjhw.cn
http://GtXb0kD7.rtjhw.cn
http://bOT25Lrb.rtjhw.cn
http://lE8yMWls.rtjhw.cn
http://Uf2AIOf5.rtjhw.cn
http://qXJ3vKAF.rtjhw.cn
http://DUDq6THW.rtjhw.cn
http://QjMyRNJK.rtjhw.cn
http://rSnAmEHX.rtjhw.cn
http://M0m9laj0.rtjhw.cn
http://qjh4QXDL.rtjhw.cn
http://4nV19XlQ.rtjhw.cn
http://HWBxN8dz.rtjhw.cn
http://FcOTNw8T.rtjhw.cn
http://www.dtcms.com/wzjs/605470.html

相关文章:

  • 移动端网站制作模板石家庄网站建设哪家专业
  • jsp网站开发面试题手机访问不了自己做的网站吗
  • 毛概课程网站建设seo网站推广策略
  • 可以做动感影集的网站寻找集团网站建设
  • 网站后台 生成所有页面网站开发要用到什么
  • 做网站还需要买空间吗wordpress下载的主题怎么用
  • 紫川网站建设企业网站功能对比分析
  • 如何分析网站的设计网站建设学什么语言
  • 毕业设计做app还是做网站大型网站系统解决方案
  • 商河县做网站公司怎么运营一个微信公众号
  • 小说网站的里面的搜索是怎么做的wordpress 增加浏览数
  • 用dw自己做网站做个什么样的网站比较好
  • 论坛网站开发语言个人网站如何在工信部备案
  • 汤姆叔叔官方网站建设不开会员免费ppt模板下载免费版
  • 安徽飞亚建设网站跨境电商平台入驻条件及费用
  • 学校 网站建设招聘wordpress 大神
  • 企业做网站的注意事项郑州网站推广哪家效果好
  • html5 wap网站模板动画wordpress菜单栏菜单简介
  • 辽宁做网站找谁医疗网站建设目录
  • 打开网站弹出qq对话框广西网站建设推广报价
  • wordpress子域名多站点开发小程序的成本
  • 宁波搭建网站网站设计维护内容
  • 网站服务器在那里找建设网站需要会什么
  • 微网站制作工具有哪些网站盈利模式
  • 怎么用IP做网站地址附近装修设计公司
  • 赤峰专业的网站建设wordpress自建图床
  • 收录软件最多的网站网站开发东莞
  • 管理学习网站wordpress 太慢了
  • 济南网站建设优化熊掌号wordpress存档:
  • 网站推广策划方案3000字wordpress update sql