uniapp仿微信红包打开动画效果

在这里插入图片描述

<template>
	<view>
		<view v-if="packerState != 3" class="packer-box flex-column">
			<view class="packer-bg anim-ease-in" :class="{ 'anim-fade-out': packerState == 2 }"></view>
			<view class="packer-bottom-box anim-ease-in" :class="{ 'anim-out-bottom': packerState == 2 }">
				<view class="arc-bottom-edge"></view>
				<view class="packer-bottom-bg"></view>
			</view>
			<view class="packer-top-box anim-ease-in" :class="{ 'anim-out-top': packerState == 2 }">
				<view class="flex-row sender-info">
					<image class="sender-avatar"></image>
					<view>{{'XXX'}}发出的红包</view>
				</view>
				<view class="packer-greeting double-text">{{'恭喜发财,大吉大利'}}</view>
				<view class="arc-edge"></view>
				<view v-if="packerState == 1" class="anim-rotate packer-btn-pos">
					<view class="packer-btn" style="transform: translateZ(-4px);"></view>
					<view class="packer-btn-middle" v-for="(item, index) in 7" :key="index" :style="{transform: `translateZ(${index - 3}px)`}"></view>
					<view class="packer-btn packer-btn-front"></view>
				</view>
				<view v-else class="packer-btn packer-btn-pos" @click="openPacker"></view>
			</view>
		</view>
	</view>
</template>
 
<script>
	export default {
		data() {
			return {
				packerState: 0
			}
		},
		methods: {
			openPacker() {
				// 加载数据,触发硬币旋转动画
				this.packerState = 1;
				this.request(() => {
					// 调用抢红包接口成功,触发开红包动画
					this.packerState = 2;
					// 开红包动画结束后,移除相关节点,否则会阻挡其它下层节点
					setTimeout(() => {
						this.packerState = 3;
					}, 500);
				})
				
			},
			request(success) {
				setTimeout(() => {
					success()
				}, 3000);
			}
		}
	}
</script>
 
<style>
	.flex-row {
		display: flex;
		flex-direction: row;
		position: relative;
	}
	.flex-column {
		display: flex;
		flex-direction: column;
		position: relative;
	}
	.packer-box {
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 99;
		color: rgb(235, 205, 153);
		padding: 60rpx;
	}
 
	.packer-bg {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		background-color: #fff;
	}
 
	.packer-top-box {
		width: 600rpx;
		background-color: rgb(244, 94, 77);
		text-align: center;
		margin: auto;
		transform: translateY(-160rpx);
		border-top-left-radius: 30rpx;
		border-top-right-radius: 30rpx;
		position: relative;
	}
 
	.sender-info {
		margin-top: 200rpx;
		justify-content: center;
		line-height: 60rpx;
		font-size: 36rpx;
	}
 
	.sender-avatar {
		width: 60rpx;
		height: 60rpx;
		border-radius: 10rpx;
		background-color: #fff;
		margin-right: 10rpx;
	}
 
	.packer-greeting {
		font-size: 48rpx;
		line-height: 60rpx;
		height: 120rpx;
		margin: 40rpx 30rpx 200rpx;
	}
 
	.arc-edge {
		position: relative;
	}
 
	.arc-edge::after {
		width: 100%;
		height: 200rpx;
		position: absolute;
		left: 0;
		top: -100rpx;
		z-index: 9;
		content: '';
		border-radius: 50%;
		background-color: rgb(244, 94, 77);
		box-shadow: 0 6rpx 6rpx 0 rgba(0, 0, 0, 0.1);
	}
 
	.packer-bottom-box {
		transform: translate(-50%, 0);
		width: 600rpx;
		height: 360rpx;
		border-bottom-left-radius: 30rpx;
		border-bottom-right-radius: 30rpx;
		overflow: hidden;
		position: absolute;
		bottom: calc(50% - 440rpx);
		left: 50%;
	}
 
	.anim-ease-in {
		animation-duration: 0.5s;
		animation-timing-function: ease-in;
		animation-fill-mode: forwards;
	}
	
	.anim-out-top {
		animation-name: slideOutTop;
	}
	
	.anim-out-bottom {
		animation-name: slideOutBottom;
	}
	
	.anim-fade-out {
		animation-name: fadeOut;
	}
 
	@keyframes fadeOut {
		from {
			opacity: 1;
		}
 
		to {
			opacity: 0;
		}
	}
 
	@keyframes slideOutTop {
		from {
			transform: translateY(-160rpx);
		}
 
		to {
			transform: translateY(-200%);
		}
	}
 
	@keyframes slideOutBottom {
		from {
			transform: translate(-50%, 0);
		}
 
		to {
			transform: translate(-50%, 200%);
		}
	}
 
	.arc-bottom-edge {
		position: relative;
	}
 
	.arc-bottom-edge::after {
		width: 120%;
		height: 200rpx;
		position: absolute;
		left: -10%;
		top: -100rpx;
		z-index: 8;
		content: '';
		border-radius: 50%;
		box-shadow: 0 60rpx 0 0 rgb(242, 85, 66);
	}
 
	.packer-bottom-bg {
		background-color: rgb(242, 85, 66);
		height: 280rpx;
		margin-top: 100rpx;
	}
 
	.packer-btn {
		border-radius: 50%;
		width: 200rpx;
		height: 200rpx;
		line-height: 200rpx;
		font-size: 80rpx;
		text-align: center;
		color: #333;
		background-color: rgb(235, 205, 153);
		box-shadow: 0 0 6rpx 0 rgba(0, 0, 0, 0.1);
	}
	.packer-btn-pos {
		transform: translateX(-50%);
		position: absolute;
		left: 50%;
		z-index: 10;
		bottom: -200rpx;
	}
	.packer-btn-front {
		position: absolute;
		top: 0;
		transform: translateZ(4px);
	}
	.packer-btn-middle {
		position: absolute;
		top: 0;
		border-radius: 50%;
		width: 200rpx;
		height: 200rpx;
		background-color: rgb(235, 180, 120);
	}
	.anim-rotate {
		margin-left: -100rpx;
		transform-style: preserve-3d;
		animation: rotate 1s linear infinite;
	}
	@keyframes rotate{
		0%{
			transform: rotateY(0deg);
		}
		100%{
			transform: rotateY(360deg);
		}
	}
</style>
叶子CMS
关注 关注
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniapp(全端兼容) - 最新详细实现全屏红包效果,整页掉落小红包类似下红包雨特效,uniAPP匀速下降红包雨掉落小游戏,在任意页面开始从天上掉落小红包用户可点击加分、点击消失等(详细示例代码)
高级前端工程师
07-09 1958
uni-app,红包雨,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,下红包雨,h5红包雨小游戏,小程序红包雨,红包雨活动,有没有红包雨的插件,组件,vue红包雨,前端,手机端,全屏都是小红包的特效,全屏从上往下落红包,覆盖在页面之上的红包雨功能,canvas,UniApp红包雨详细示例代码demo,红包雨小游戏制作,活动页面,点击红包消失,满屏红包雨,整个屏幕都下红包雨,vue 类似于红包雨匀速下降,流畅,不卡顿,uniapp有各端都通
仿微信红包(js 转)
adai19850204的博客
09-29 236
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>仿微信红包</title> <style> html,body,div{margin:0...
仿微信红包 1
08-25
html+css+js 微信红包前端代码,实现转发诱导等
uniapp实现红包动画效果(vue3)
X_JinCheng的博客
03-08 2862
uniapp小程序实现红包动画效果(vue3+ts) 使用uni.createAnimation()具体查看官方文档。首先安装CSS动画库animate.css依赖。红包整体主要分三部分 红包头部 中部 底部。除了红包底部 头部和中部需要定位。打开main.ts文件引入。
仿微信获取红包
weixin_42275491的博客
05-22 927
/* * 仿微信获取红包 * @param sum 总金额 * @param num 红包个数 * @return int */ int getRedPacket(int sum, int num) { // 主要参考:https://www.zhihu.com/question/22625187 (答主陈鹏的回答) // 总金额 sum = 100 // 红包个数 num = 20 /...
uniappp小程序做一个红包雨的功能
ZhouXin_0819的博客
03-22 1193
在绘制函数中,还需要判断用户是否点击了红包,如果点击了,则触发红包打开动画效果,并将红包从数组中移除。最后,您还需要添加一些配置项,例如红包的数量、速度、大小等,以及红包打开的奖励内容等。最后,还需要添加一些配置项,例如红包的数量、速度、大小等,以及红包打开的奖励内容等。在每个时间间隔内,遍历红包数组,更新每个红包的位置,并绘制到画布上。首先,您需要在页面中添加一个画布元素,用于绘制红包效果。在绘制函数中,首先清空画布,然后绘制红包雨的背景图。接着,生成一定数量的红包,并将它们添加到一个数组中。
php + uniapp发送微信小程序红包
qq_16088377的博客
06-15 541
3.package进行urlencode,在php中代码就是。注:小程序红包只有在扫码进入的时候,红包才会生效。2. 返回结果中有我们需要的package。1:想要领取红包,先要发红包,生成红包参数。
用H5仿微信实现摇一摇,抢红包效果
07-12
6. `redpacket`:这个目录可能包含了实现抢红包功能的相关代码和资源,如红包动画效果、交互逻辑等。 综上所述,这个H5项目通过结合DeviceMotionEvent和DeviceOrientation事件,以及模拟服务器交互,成功地在网页...
微信小程序实现红包雨功能
10-18
- **动画控制**:在JS中,利用定时器`showInter`控制红包动画,当红包到达底部时,移除该红包并重新生成新的红包,保持红包雨的效果。 4. **关键代码片段** - **WXML**: ```html style="position:fixed;...
基于uniapp开发的仿小米有品的微信小程序项目源码.zip
08-21
基于uniapp开发的仿小米有品的微信小程序项目源码.zip 代码完整下载可用,亲测确保可以运行。 基于uniapp开发的仿小米有品的微信小程功能如下: 搜索热词滚动,侧滑商品推荐,吸顶推荐分类,css加载动画,下拉加载...
模拟(模仿微信红包
02-17
模拟(模仿微信红包 1、实现算法 2、获取手气最佳人及金额 仅供学习,VS2010开发,2.0框架
html+css+js 仿微信红包
10-19
html+css+js 仿微信红包
仿微信弹出“生日快乐”类动画
01-04
博客资源,地址 http://blog.csdn.net/a279822581/article/details/50457364
jQuery仿微信红包输入密码特效.zip
07-05
jQuery仿微信红包输入密码特效是一款基于jQuery HTML5实现的仿微信支付密码输入框代码
仿微信红包打开特效,3D图片翻转
11-07
仿微信红包打开特效3D图片翻转
八、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-聊天输入框扩展面板的实现
12-26 1579
基于uni-app技术开发的仿微信界面IM实例项目,开源Vue版本源码,对于要求高的开发者我们也开发了NVUE版本,实现了文本消息、图文消息、表情(gif动画),图片预览,图片编辑,视频预览,视频编辑,仿微信的图片选择、编辑、长按菜单等功能
仿微信红包
dnu5342的博客
10-30 278
近期项目需要在聊天的基础上新增红包功能,需求:仿微信(不含留言),但只能使用余额发红包。于是多次使用微信红包,了解各种交互界面及业务需求,如展示信息、分类(个人,群普通,群拼手气)、个数限制(100)、金额限制(200)、过期时间(24小时)等等,然后着手开发,下面提及的基本全是提供给app端的接口,毕竟我是phper。 一、设计数据表如下 CREATE TABLE `re...
----uni-app之组件的动画----
weixin_33736832的博客
06-04 7052
转载于:https://www.cnblogs.com/zjy850984598/p/10975800.html
uniapp仿微信app
最新发布
04-01
UniApp是一种基于Vue.js框架的跨平台开发框架,可以用于开发多个平台的应用程序,包括iOS、Android、Web等。通过UniApp,你可以实现仿微信的App。 UniApp提供了一套完整的开发工具和组件库,使得开发者可以使用一套代码同时在不同平台上运行。在开发仿微信的App时,你可以使用UniApp提供的组件库来实现类似微信界面和功能。 以下是一些实现仿微信App的步骤和技术点: 1. 页面布局:使用UniApp提供的组件和布局方式,搭建类似微信的页面结构,包括底部导航栏、聊天列表、联系人列表等。 2. 数据交互:通过UniApp提供的网络请求API,与后端服务器进行数据交互,包括获取聊天记录、发送消息等。 3. 实时通信:使用UniApp提供的WebSocket API或者第三方插件,实现实时聊天功能。 4. 图片和文件上传:使用UniApp提供的文件上传API,实现发送图片、文件等功能。 5. 本地存储:使用UniApp提供的本地存储API,实现消息记录的本地存储和读取。 6. 推送通知:使用UniApp提供的推送通知API或者第三方插件,实现消息推送功能。
写文章

热门文章

  • 最新合成类游戏APP源码,带安装教程 5831
  • 新版本游戏试玩APP搭建教程,附上试玩APP源码 5408
  • 本地wifi分享管理小程序源码 4544
  • 配音小程序源码,内置106个配音角色 2445
  • 解决uniapp使用web-view嵌套H5页面返回直接退出的问题 2323

分类专栏

  • 小程序源码 2篇
  • 配音小程序 2篇
  • 游戏试玩 1篇
  • 合成游戏 1篇

最新评论

  • 配音小程序源码,内置106个配音角色

    2401_85591441: 怎么联系,想买你配音的源码

  • 新版本游戏试玩APP搭建教程,附上试玩APP源码

    Trouble怪蜀黍: 联系方式?

  • 新版本游戏试玩APP搭建教程,附上试玩APP源码

    WYD528: 能不能帮忙搭建

  • 本地wifi分享管理小程序源码

    m0_73253473: 能帮忙搭建吗?我想要

  • 本地wifi分享管理小程序源码

    李别逗: 可以用于运营版嘛?

大家在看

  • Leetcode 每日一题:Diameter of Binary Tree

最新文章

  • php根据ip获取城市地址
  • 实现DEDE织梦PC端和手机静态页面同步方法
  • 解决uniapp使用web-view嵌套H5页面返回直接退出的问题
2024年2篇
2023年1篇
2022年5篇
2021年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家泸州玻璃钢广场雕塑价格青海卡通玻璃钢雕塑设计兰州大型玻璃钢雕塑制作甘孜玻璃钢花盆雕塑定制厂家沈阳玻璃钢雕塑工厂福建玻璃钢孔子雕像雕塑售价一般商场美陈多少钱河东玻璃钢雕塑公司商场美陈品牌策划新乡锻铜玻璃钢仿铜雕塑厂家广东玻璃钢动物雕塑制作工厂河源玻璃钢雕塑厂家直销佛像玻璃钢雕塑定制厂家深圳福田商场美陈装饰河源校园玻璃钢雕塑上海仿铜玻璃钢雕塑销售电话玻璃钢金鱼雕塑栖霞商场秋季美陈玉溪市玻璃钢雕塑公司景观玻璃钢卡通雕塑厂家现货泰安玻璃钢雕塑厂家上海市玻璃钢雕塑哪家强北京玻璃钢雕塑生产商邢台玻璃钢卡通人物雕塑报价安徽玻璃钢牛动物雕塑定制广西玻璃钢雕塑公园艺术摆件玻璃钢雕塑吊顶西安定制玻璃钢迎宾人物雕塑新疆中昌玻璃钢雕塑厂大兴安岭玻璃钢商场美陈香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化