uniapp幸运大转盘

2023-10-26

<template>
    <view>
        <view class="circle">
            <view class="post" :class="{'posts':lottery==true}" :style="{transform:`rotate(-${index}deg)`}">
                <view v-for="(item,index) in arrty" class="paint" :key="index"
                    :style="{transform:`rotate(${index*number}deg) skewY(-27deg)`}">
                </view>
                <view v-for="(item,index) in arrty" class="painta" :key="index"
                    :style="{transform:`rotate(${index*number}deg)`}">
                    <view class="paint-flex">
                        <b>{{item.name}}</b>
                        <b>{{item.prize}}</b>
                    </view>
                </view>
            </view>
            <view class="arrow"></view>
            <view class="draw" @click="draw">抽奖</view>
        </view>
    </view>
</template>


<script>
    export default {
        data() {
            return {
                lottery: false,
                index: 0,
                s: 0,
                arrty: [{
                        id: 1,
                        name: '六等奖',
                        prize: '谢谢回顾'
                    },
                    {
                        id: 2,
                        name: '五等奖',
                        prize: '20'
                    },
                    {
                        id: 3,
                        name: '四等奖',
                        prize: '100'
                    },
                    {
                        id: 4,
                        name: '三等奖',
                        prize: '游戏机',
                    },
                    {
                        id: 5,
                        name: '二等奖',
                        prize: '苹果13',
                    },
                    {
                        id: 6,
                        name: '一等奖',
                        prize: '苹果14',
                    },
                ]
            }
        },
        computed: {
            number() {
                return 360 / this.arrty.length;
            }
        },
        methods: {
            draw() {
                if (this.lottery) {
                    return;
                }
                this.lottery = true;
                setTimeout(() => {
                    this.lottery = false;
                    if (this.lottery == false) {
                        console.log(this.arrty.findIndex(item => item.name == '一等奖'));
                        var a = 0;
                        this.s++;
                        console.log(this.s);
                        if (this.s == 1) {
                            a = (this.arrty.findIndex(item => item.name == '六等奖') + 1) * this.number;
                        } else if (this.s == 2) {
                            a = (this.arrty.findIndex(item => item.name == '五等奖') + 1) * this.number;
                        } else if (this.s == 3) {
                            a = (this.arrty.findIndex(item => item.name == '一等奖') + 1) * this.number;
                        } else if (this.s == 4) {
                            a = (this.arrty.findIndex(item => item.name == '四等奖') + 1) * this.number;
                        }else if (this.s == 5) {
                            a = (this.arrty.findIndex(item => item.name == '三等奖') + 1) * this.number;
                        }else{
                            a = (this.arrty.findIndex(item => item.name == '二等奖') + 1) * this.number;
                        }
                        this.index = a;
                    }
                }, 3000)
            }
        }
    }
</script>


<style scoped lang="scss">
    .circle {
        width: 600rpx;
        height: 600rpx;
        background-color: red;
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        transform: rotate(30deg);
        margin: auto;
        margin-top: 100rpx;
    }

    .draw {
        position: absolute;
        transform: rotate(-30deg);
        background-color: red;
        width: 100rpx;
        height: 100rpx;
        text-align: center;
        line-height: 100rpx;
        border-radius: 50%;
        color: #fff;
    }

    .arrow {
        position: absolute;
        width: 10rpx;
        height: 70rpx;
        background-color: red;
        top: 200rpx;
        left: 43%;
        transform: rotate(-30deg);
    }

    .post {
        width: 560rpx;
        height: 560rpx;
        border-radius: 50%;
        position: absolute;
        overflow: hidden;
    }

    .posts {
        width: 560rpx;
        height: 560rpx;
        border-radius: 50%;
        position: absolute;
        overflow: hidden;
        animation-name: anima;
        animation-duration: 1s;
        animation-iteration-count: infinite;
        animation-timing-function: linear;
    }

    @keyframes anima {
        from {
            transform: rotate(0deg);
        }

        to {
            transform: rotate(360deg);
        }
    }

    .paint {
        width: 560rpx;
        height: 560rpx;
        background-color: bisque;
        position: absolute;
        left: 50%;
        top: -50%;
        /*600-280/2,将prize正方形左下角点对准圆心*/
        border: 1px solid red;
        /*以正方形左下角为中心旋转,0% 100%即左下角的坐标*/
        transform-origin: 0% 100%;

    }

    .painta {
        width: 300rpx;
        height: 300rpx;
        position: absolute;
        left: 50%;
        top: 0;
        transform-origin: 0% 100%;
    }

    .painta:nth-child(3) {
        color: red;
    }

    .paint-flex {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        width: 110%;
        height: 80%;
        transform: rotate(30deg) translateX(-15%) translateY(10%);
        font-size: 30rpx;
    }
</style>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uniapp幸运大转盘 的相关文章

  • 谷歌文档文本光标

    我需要创建一个类似于谷歌文档的应用程序 我发现 google 文档不使用任何文本区域 而是使用常规 div 来创建页面 但我不知道他们是如何获得文本光标的 是图像闪烁吗 因为当我尝试使用 Chrome 开发者工具查看网页代码时 我没有看到任
  • 在透明背景的按钮上剪出一块边框

    您好 我想弄清楚如何创建以下按钮 制作按钮很容易 但棘手的部分是在右侧创建小切口 该按钮具有透明背景 因此我无法将带有背景颜色的伪元素粘贴在那里以与其重叠 有任何想法吗 HTML div a view profile a div CSS d
  • Canvas 动画在 FireFox 中卡顿,但在 Chrome 中完美

    我最近开始做一些 HTML5 Canvas 的东西 并且很高兴地开展我的业务 在 Chrome 中测试东西 直到我决定尝试我在 Firefox 中所做的事情 效果不太好 这是我正在做的事情的一个简单的例子 设置基本的 requestAnim
  • 如何正确设置 100% DIV 高度以匹配文档/窗口高度?

    我有一个包装器 位于中心位置 并带有 y 重复的背景图像 div some content div wrapper width 900px margin 0 auto 0 auto background image url image jp
  • 致命错误:发送表单时未找到“App\Http\Controllers\Input”类

    我正在尝试发送一封包含来自 Laravel 应用程序的表单的电子邮件 当你点击提交时 它会抛出上述错误 致命错误 找不到类 App Http Controllers Input 不知道为什么 因为我没有 也不知道我需要有一个输入控制器 或者
  • 离子侧菜单和带有嵌套视图的选项卡:选项卡嵌套视图的内容未显示

    我对两者都是新手AngularJS and Ionic 我正在创建一个应用程序 它具有sidemenu and tabs在菜单选项之一内 选项卡应使用以下方式呈现其内容nested view 所以没有简单的HTML here 我可以在侧菜单
  • jQuery - 选择同一级别的div

    我想在单击按钮时选择一个特定的div 唯一的问题是 它必须是buttonClicked的父div的div 示例 div class container div class box h2 Langtidsparkering h2 div cl
  • 具有不同高度块的三列布局

    我有基于 Twitter Bootstrap 的简单 3 列布局 唯一的问题是 每根柱子都是由不同高度的块组装而成 div class container div class row div class span4 div class bl
  • 如何为webpack使用自己的jade文件?

    我是 webpack 的新手 并试图弄清楚如何在 webpack dev server 中使用我自己的 html 文件以及我的 webpack 构建 在我的 app js 中我有 require jade index jade 但这并不意味
  • 使用选择器获取最接近的父元素(不包括当前元素)

    我正在尝试获取元素的最接近的父元素 看着 closest https developer mozilla org en US docs Web API Element closest 如果选择器与元素匹配 它似乎会返回元素本身 Closes
  • CSS淡入淡出动画延迟计时

    我正在尝试使用 css3 创建幻灯片效果 我有三张图像 我需要将它们相互淡入淡出 每次转换需要持续 3 秒 第一张图像显示 3 秒 然后淡入第二张图像 第三张图像同样显示 我不确定如何计算关键帧的百分比 Codepen http codep
  • 使用 html/javascript/css 的弹出表单

    我必须在弹出窗口中打开一个 html 表单 弹出窗口不应该是一个窗口 通常使用 window open 创建 而应该像下面的链接中出现的那样 在 Firefox 中打开 http www w3schools com js tryit asp
  • 选择部分文本右对齐[重复]

    这个问题在这里已经有答案了 我想知道是否有任何方法可以将选项文本的一部分向右对齐 在下面 您可以看到我有一个选择 左侧有一些名称 右侧有 垂直 我需要将 垂直 向右拉 有什么办法可以做到这一点吗
  • 一旦我们点击取消按钮,文本字段就会隐藏

    我们正在使用 magento 多供应商网站 我们正在使用以下代码来更新和取消价格 但是一旦我们单击 取消 按钮 文本字段就会隐藏 PHTML span class label pro status span
  • TypeError:req.checkBody 不是包含 bodyparser 和expressvalidator 模块的函数

    我收到错误 req checkBody 不是一个函数 我认为我已经包含了express validator和body parser 这是我的代码 var express require express var bodyParser requ
  • 如何在 div 标签上添加带边框的三角形

    我有一个 div 标签 我想在它上面添加一个小三角形 注意 我希望我的 div 标签具有某种颜色的边框 以及另一种颜色的 div 主体 假设我的 div 背景为白色 边框为蓝色 请看这个 http fiddle jshell net pau
  • 没有操作的 HTML 表单

    在 Django Pinax 中 我遇到过这样的登录表单
  • jquery $('id').text 带粗体

    我有一个 jquery 可以更改链接的文本 如下所示 if urlfind gt 0 linkurl text More info 和 HTML a href a 我试图为此链接添加粗体 但添加 b More Info b 让它们在文本本身
  • HTML Canvas:如何绘制翻转/镜像图像?

    当我在 HTML 画布上绘制图像时 我试图翻转 镜像图像 我发现一个游戏教程显示了角色必须面对的每个方向的精灵表 但这对我来说似乎不太正确 特别是因为每个框架都有不同的尺寸 实现这一目标的最佳技术是什么 我尝试致电setScale 1 1
  • 如何在禁用按钮上启用 Bootstrap 工具提示?

    我需要在禁用的按钮上显示工具提示 并在启用的按钮上删除它 目前 它的工作原理是相反的 扭转这种行为的最佳方法是什么 rel tooltip tooltip

随机推荐

  • MATLAB行向量顺序颠倒函数 - fliplr

    fliplr A 只可用于行向量 列向量不行 实例 1 行向量 2 列向量
  • 如何使用正则表达式实现Java日志信息的抓取与收集

    首先 什么是Java日志信息 简单来说 Java应用程序在运行过程中会输出一些信息 这些信息可以用来追踪程序运行状态 调试错误等 而Java日志信息就是这些输出信息的集合 那么为什么要抓取和收集Java日志信息呢 一方面 这些信息可以帮助我
  • 失业的程序员(八):创业的要素

    一 管饭哥登场 按理说我规定我和卞工的上班时间是上午8点到10点 弹性足够大 虽曰规定 但是遵不遵守随意 原因只有一个 引用卞工的话 就两个人 考毛勤 我 很是认可 严密的考勤制度的建立是老板对员工不怎么太信任的开始 是一种等级制度的体现
  • 1.神奇的字符串之快速求和

    文章目录 前言 正题 先看第一个代码 直接循环取出每一位数 总结 前言 这个专栏是分享一些好用的数据 和一些解题比较快的小方法 会持续更新 因为博主还是计算机方向的小白 知道的东西还是很少 希望大家可以多多指教 正题 众所周知 字符串一直是
  • PyTorch实现Logistic regression

    逻辑回归 Logistic regression 回归方法是对数值型连续随机变量进行预测和建模的监督学习算法 其特点是标注的数据集具有数值型的目标变量 回归的目的是预测数值型的目标值 逻辑回归对应线性回归 旨在解决分类问题 即将模型的输出转
  • python如何对微信应用进行监听

    要在 Python 中监听微信应用 需要使用微信提供的接口和相关的第三方库 具体实现方法如下 首先需要申请微信公众平台账号并获取相应的 AppID 和 AppSecret 使用第三方库 如 itchat 来进行接口调用 Itchat 是一个
  • Git提交error: RPC failed; result=22, HTTP code = 500的解决方法

    新建了一个项目使用sourcetree提交Git时 提示错误 RPC failed result 22 HTTP code 500 这是由于上传的包过大 HTTP的头错误导致的 解决办法 在终端执行命令显示隐藏文件夹 显示全部文件 defa
  • wget -o -O和-O-有什么区别?bash改色

    wget o O和 O 有什么区别 wget o 下载过程信息存入日志文件wget o youlogname log url 下载文件放另一边 wget O 以其他名称保存下载的文件内容 输出下载过程信息wget O home ym dem
  • linux之librdkafka库安装以及将#include <librdkafka/rdkafka.h>更改为#include <rdkafka.h>调用

    公众号 嵌入式不难 本文仅供参考学习 如有错误之处 欢迎留言指正 下载源代码 使用如下命令 git clone https github com edenhill librdkafka git 切换到发布的稳定分支 刚下载下来的源代码默认在
  • -O1 -O2 -O3 优化的原理是什么?

    一般来说 如果不指定优化标识的话 gcc就会产生可调试代码 每条指令之间将是独立的 可以在指令之间设置断点 使用gdb中的 p命令查看变量的值 改变变量的值等 并且把获取最快的编译速度作为它的目标 当优化标识被启用之后 gcc编译器将会试图
  • 鸿蒙应用开发学习

    系列文章目录 第一章 HarmonyOS是什么 第二章 基础环境和开发工具 文章目录 系列文章目录 前言 一 HarmonyOS工程介绍 二 工程目录结构 三 工程目录介绍 1 entry 2 Ability 3 库文件 4 资源文件 5
  • Linux指令中touch和mkdir的区别

    在Linux中 mkdir 用于创建空的文件夹 格式 mkdir 选项 目录 选项 功能 m 默认文件目录的权限 m755 p 连续创建多层 v 显示创建过程 touch touch 是用于创建新的文件 或者修改文件的时间
  • 福昕阅读器注册码

    以下文字复制到记事本存为frpkey txt 复制到福昕阅读器的安装目录即可 FoxitReaderPro SN FRPFZ12391Modules Users 1Licensee OlivierGuilloryLicenseDate 20
  • sql中and和or的混合使用

    1 and的优先级高于or 2 使用 调整优先级 下面sql没有添加过滤条件 下面sql查出的结果是错误的 下面sql查出的结果是正确的
  • 延时函数

    Dos sleep 1 停留1秒 delay 100 停留100毫秒 Windows Sleep 100 停留100毫秒 Linux sleep 1 停留1秒 usleep 1000 停留1毫秒 每一个平台不太一样 最好自己定义一套跨平台的
  • 继续探索Roop(单张图视频换脸)的各方面:比如喜闻乐见的“加速”

    文章目录 一 Roop项目的特点 二 Roop也能加速 三 Roop更新和依赖 3 1 飞速更新 3 2 依赖问题 3 3 需要CUDA么 前两天写了 简单介绍Roop 类似SimSwap 单张图视频换脸的项目 介绍了基本安装使用 之后这个
  • [1193]ClickHouse写入常见问题: Too many parts (300)

    文章目录 一 场景及错误信息 二 报错原因 三 解决办法 扩展 一 场景及错误信息 今天使用 Datax 往 ClickHouse 同步数据时 出现如下错误 ClickHouse exception code 1002 host 10 12
  • Ubuntu22.04安装mysql集群一主一从

    Ubuntu22 04安装mysql集群 以下是在Ubuntu 22 04上安装一主一从的MariaDB集群的步骤 首先 你需要有两个 Ubuntu 22 04 的服务器 分别命名为 Server1 和 Server2 这两个服务器都需要安
  • 可调用对象与lambda表达式

    可调用对象与lambda表达式 OVERVIEW 可调用对象与lambda表达式 1 using 1 函数指针别名 case1 定义基础类型 case2 定义函数指针别名 2 模板定义别名 2 可调用对象 1 包装器 case1 基本用法
  • uniapp幸运大转盘