uniapp 使用css实现大转盘

news2024/11/15 22:38:30

 思路:

1.一个原型的外壳包裹

2.使用要分配的个数,计算出角度,利用正切函数tan计算出角度对应对边长度

3.使用clip-path画出一个扇形

4.使用v-for循环出对应的份数,依次使用transform rotate旋转对应的角度。

注意:这列之所以要使用三角函数计算对边的长度是因为要在扇形区域添加元素,最后能够一起随着旋转到指定的角度。没有要添加的元素则相对简单了。

<template>
	<CustomNav mode="normal" :navStyle="{color:'#fff','z-index':2}" bg-color="transparent" :backArrow="true">
	</CustomNav>
	<image class="position-absolute w-100% h-100% top-0" src="../../../static/pics/drawBack.png" mode=""></image>
	<view class="position-absolute top-50% transform-translate-y--50% transform-translate-x--50% left-50%">
		<view class="commom-center  flex flex-items-center flex-justify-center">
			<!-- 添加对应的元素 -->
            <image class="position-absolute w-640rpx h-640rpx" src="../../../static/pics/pan.png" mode=""></image>
			<view
				:class="'position-relative border-rd-50% w-540rpx h-540rpx overflow-hidden transition-all transition-duration-500 transition-ease transition-property-all  '+ start">
				<view v-for="(item,index) of 8" :key="index" class="position-absolute left-50% top-0 bg-blue h-270rpx"
					:style="{width:width,transformOrigin:'center bottom',transform:`translateX(-50%) rotate(${degree*index}deg)`,'clip-path': 'polygon(0% 0%, 100% 0%, 50% 100%)',backgroundColor:(index%2==0)?'#FFE7BA':'#FFD096'}">
					<view class="text-center mt-20rpx font-size-24rpx color-#B84B2B mb-20rpx">
						<text>优惠券8元</text>
					</view>
					<view class="text-center">
						<image v-show="index%2==0" class="w-72rpx h-72rpx" src="@/static/pics/face.png" mode=""></image>
						<image v-show="index%2!=0" class="w-72rpx h-60rpx" src="@/static/pics/quan.png" mode=""></image>
					</view>
				</view>
			</view>
			<image
				class="w-168rpx h-210rpx position-absolute top-50% left-50% transform-translate-x--50% transform-translate-y--60%"
				src="@/static/pics/pin.png" mode=""></image>
		</view>
	</view>
	<view class="position-absolute bottom-214rpx pl-100rpx pr-100rpx w-100% box-border">
		<view @click="takedraw"
			class="mt-100rpx text-center color-#C03D00 mb-60rpx line-height-112rpx border-rd-56rpx w-100% font-bold"
			style="background: linear-gradient(180deg, #FFB683 0%, #FFC373 50%, #FFFFD4 100%);">
			立即抽奖
		</view>
		<view class="flex flex-items-center font-600 flex-justify-between font-size-28rpx color-#FFFDD1">
			<text>剩余机会 1 次</text>
			<text>活动说明</text>
		</view>
	</view>

</template>

<script setup lang="ts">
	const degree = ref(45)
	const width = ref(0)
	const { screenRate } = getApp().globalData as GlobalData
	const start = ref("")
	const calculate = () => {
		width.value = Math.tan((degree.value / 2) * Math.PI / 180) * 135 * 2 * (1 / screenRate) + 'rpx'
	}
	const takedraw = () => {
		start.value = "spin"
		setTimeout(() => {
			start.value = "stop"
		}, 3000)
	}
	calculate()
</script>

<style lang="scss">
	@keyframes rotate {
		from {
			transform: rotate(0deg);
		}

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

	.spin {
		transform-origin: center center;
		animation: rotate 1s linear infinite;
	}

	.stop {
		animation: none;
	}
</style>

实现效果: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DM集群的高可用的配置方式(多语言)

一、介绍 强调以下&#xff1a;dm_svc.conf必须放置到应用服务器上才行&#xff0c;放到其他服务器上识别不到。 文章中有的框架可能没写到并不代表不支持&#xff0c;有没提到的可文章下方留言。 1.dm_svc.conf的作用&#xff1a; dm_svc.conf文件主要是为了当DM数据库集群…

ES(ElasticSearch)倒排索引

目录 正排与倒排索引 1.正排索引 作用&#xff1a; 优点&#xff1a; 缺点&#xff1a; 2.倒排索引 原理&#xff1a; 倒排索引的构建流程&#xff1a; 倒排索引的搜索流程&#xff1a; 优点&#xff1a; 缺点&#xff1a; 3. 应用场景 倒排索引中有几个非常重要的概念…

Skyeye云智能制造企业版源代码全部开放

智能制造一体化管理系统 [SpringBoot2 - 快速开发平台]&#xff0c;适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模…

【图文详解】Spring是如何解决循环依赖的?

Spring是如何解决循环依赖的呢&#xff1f; 很多小伙伴在面试时都被问到过这个问题&#xff0c;刷到过这个题的同学马上就能回答出来&#xff1a;“利用三级缓存”。面试官接着追问&#xff1a;“哪三级缓存呢&#xff1f;用两级行不行呢&#xff1f;” 这时候如果没有深入研究…

AI副业赚钱免费资源大汇总

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;的热潮无处不在&#xff0c;许多人对于如何利用AI技术来创造收入机会感到好奇。本文将介绍一个名为aimoneyhunter的开源项目&#xff0c;这是一个专注于AI副业赚钱的资源汇总&#xff0c;旨在帮助人们在AI时代找…

技术干货 | 针对Spring-Boot 框架漏洞的初探

0x1 前言 这篇文章主要是给师傅们介绍下Spring-Boot 框架漏洞的打法以及主要对于Spring-Boot漏洞的接口泄露信息进行一个分析&#xff0c;后面使用了曾哥的Spring-Boot漏洞扫描工具&#xff0c;可以很大减轻我们对于这个漏洞接口的分析。 0x2 Spring框架简述 Spring是一个ja…

Ollama 在Windows Server 2019中部署 qwen:4b

1、环境 1.1、Ollama 1.2、Windows Server 2019 1.3、qwen:4b 1.4、nginx-1.27.0 2、部署后效果如下。 3、环境安装包下载链接包含本文所有的配置内容。 https://download.csdn.net/download/xingchengaiwei/89571623 4、安装ollama&#xff0c;官网下载地址Download Ollama…

【SpringCloud】企业认证、分布式事务,分布式锁方案落地-2

目录 高并发缓存三问 - 穿透 缓存穿透 概念 现象举例 解决方案 缓存穿透 - 预热架构 缓存穿透 - 布隆过滤器 布隆过滤器 布隆过滤器基本思想​编辑 了解 高并发缓存三问 - 击穿 缓存击穿 高并发缓存三问 - 雪崩 缓存雪崩 解决方案 总结 为什么要使用数据字典&…

一文带你了解RAG(检索增强生成) | 概念理论介绍+ 代码实操

一、LLMs 已经具备了较强能力了&#xff0c;为什么还需要 RAG(检索增强生成)? 尽管 LLM 已展现出显著的能力&#xff0c;但以下几个挑战依然值得关注&#xff1a; 幻觉问题&#xff1a;LLM 采用基于统计的概率方法逐词生成文本&#xff0c;这一机制内在地导致其可能出现看似逻…

PPT模板替换秘籍:一键撤销原模板,轻松更换新风格!

将PPT中的模板换成另一个模板&#xff0c;可以通过几种不同的方法实现。以下是几种常用的方法&#xff1a; 方法一&#xff1a;使用PowerPoint内置的设计选项卡 打开PowerPoint&#xff1a;首先&#xff0c;打开你想要更改模板的PPT文件。 选择“设计”选项卡&#xff1a;在…

Python设计模式 - 工厂方法模式

定义 工厂方法模式是一种创建型设计模式&#xff0c;它定义一个创建对象的接口&#xff0c;让其子类来处理对象的创建&#xff0c;而不是直接实例化对象。 结构 抽象工厂&#xff08;Factory&#xff09;&#xff1a;声明工厂方法&#xff0c;返回一个产品对象。具体工厂类都…

【学术会议征稿】2024年第七届机械工程与智能制造国际会议(WCMEIM 2024)

2024年第七届机械工程与智能制造国际会议&#xff08;WCMEIM 2024&#xff09; 2024 7th World Conference on Mechanical Engineering and Intelligent Manufacturing WCMEIM会议属一年一度的国际学术盛会。因其影响力及重要性&#xff0c;WCMEIM会议自创建筹办以来&#xff…

i 评论,网页评论插件使用示例

网页快速实现评论功能&#xff0c;i 评论插件&#xff0c;来试试吧&#xff01; https://andi.cn/page/621617.html

生成模型 VQVAE:Neural Discrete Representation Learning

注&#xff1a;加粗下划线名词详解见文章末 了解VQGAN之前&#xff0c;还学习了VQVAE&#xff08;Vector QuantisedVariational AutoEncoder&#xff09;&#xff09;这篇论文Neural Discrete Representation Learning&#xff0c;看了几个不错的学习视频 进行了深入了解 VQVAE…

搜狐视频的长期主义,让高精尖知识走近普罗大众

“如果你忽略了量子力学&#xff0c;就没有稳定的电磁系统。” “没有结构&#xff0c;我们就像灰烬一样。” 近日&#xff0c;在一场对谈中&#xff0c;张朝阳与美国哈佛大学教授、物理系系主任&#xff0c;美国国家科学院院士、狄拉克奖与基础物理学突破奖获得者库姆伦瓦法…

Matlab编程资源库(11)多项式计算

一、多项式的四则运算 1&#xff0e;多项式的加减运算 2&#xff0e;多项式乘法运算 函数conv(P1,P2)用于求多项式P1和P2的乘积。 这里&#xff0c;P1、P2是两个多项式系数向量。 3&#xff0e;多项式除法 函数[Q,r]deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回多项…

这么发sci论文,审稿人看了都流泪

前言 早上起来&#xff0c;忐忑的你打开审稿人的意见&#xff0c;看到这样一条评语&#xff0c;我们表述不够精准&#xff0c;口语化严重&#xff0c;学视性较弱。 你瞬间就清醒了&#xff0c;只能再次打开不知修改了多少遍的终稿&#xff0c;再次修改&#xff0c;心里想着&a…

魔法项链-小红书2024笔试(codefun2000)

题目链接 魔法项链-小红书2024笔试(codefun2000) 题目内容 你有一个魔法项链&#xff0c;现在你想要强化一下这件装备。你可以将魔法项链看做一条从头到尾串有 n 个不同魔力值宝石的绳子。根据你目前的冒险等级&#xff0c;你可以仅将其中的一颗宝石的魔力值强化并改变为 v 。…

基于OpenCV C++的网络实时视频流传输——Windows下使用TCP/IP编程原理

1.TCP/IP编程 1.1 概念 IP 是英文 Internet Protocol &#xff08;网络之间互连的协议&#xff09;的缩写&#xff0c;也就是为计算机网络相互连接进行通信而设计的协议。任一系统&#xff0c;只要遵守 IP协议就可以与因特网互连互通。 所谓IP地址就是给每个遵循tcp/ip协议连…

书生大模型实战营--L1关卡-Llamaindex RAG实践

一、安装llamaindex库 pip install llama-index pip install llama-index-embeddings-huggingface 二、问2024年巴黎奥运会 中国队获得几枚金牌&#xff0c;无法回答该问题 三、构建Llamaindex RAG 1、初始化llm 2、构建词向量模型 下载模型&#xff1a;git clone https://…