uni-app 微信小程序之红包雨活动

文章目录

  • 1. 页面效果
  • 2. 页面样式代码

1. 页面效果

GIF录屏有点卡,实际比较丝滑

  1. 每0.5s掉落一个红包
  2. 控制4s后自动移除红包
  3. 点击红包消除红包(或者自行+1,或者弹窗需求)

请添加图片描述

2. 页面样式代码

<!-- 红包雨活动 -->
<template><scroll-view scroll-y="true"><view class="red-envelope-rain"><view v-for="(redEnvelope, index) in redEnvelopes" :key="index" class="red-envelope":style="{ top: redEnvelope.top + 'px', left: redEnvelope.left + 'px' }"@click="handleRedEnvelopeClick(index)"></view></view></scroll-view>
</template><script>export default {data() {return {redEnvelopes: [],redEnvelopeInterval: null,}},onLoad(options) {// 每秒创建一个红包setInterval(this.initializeRedEnvelopes, 500); // 更新红包位置,约 60 帧setInterval(this.moveRedEnvelopes, 1000 / 60); },beforeDestroy() {this.stopRedEnvelopeRain();},methods: {initializeRedEnvelopes() {const numRedEnvelopes = 20; // 红包数量// for (let i = 0; i < numRedEnvelopes; i++) {const redEnvelope = {id: Date.now(),top: 0, // 随机纵坐标left: Math.random() * (uni.getSystemInfoSync().windowWidth - 50), // 随机横坐标speed: Math.random() * 6 + 1, // 随机速度};this.redEnvelopes.push(redEnvelope);setTimeout(() => {this.redEnvelopes = this.redEnvelopes.filter(p => p.id !== redEnvelope.id);}, 4000); // 4秒后移除红包},startRedEnvelopeRain() {this.redEnvelopeInterval = setInterval(() => {this.moveRedEnvelopes();}, 1000 / 60); // 每秒60帧},stopRedEnvelopeRain() {clearInterval(this.redEnvelopeInterval);},moveRedEnvelopes() {this.redEnvelopes.forEach((redEnvelope, index) => {console.log(redEnvelope, "redEnvelopes")redEnvelope.top += redEnvelope.speed;if (redEnvelope.top > uni.getSystemInfoSync().windowHeight) {this.redEnvelopes = this.redEnvelopes.filter(p => p.id !== redEnvelope.id);}});},// 处理红包点击事件,可以增加分数或显示提示等操作handleRedEnvelopeClick(index) {// 例如:this.score += 1;// 或者:this.showTip = true;// 可以根据实际需求自行添加逻辑this.redEnvelopes.splice(index, 1); // 点击后移除红包},}}
</script><style lang="scss">.red-envelope-rain {position: relative;overflow: hidden;width: 100vw;height: 100vh;}.red-envelope {position: absolute;background-image: url('https://i-1.lanrentuku.com/2020/11/4/a9b4bcdb-75f3-429d-9c21-d83d945b088e.png?imageView2/2/w/500');background-size: 100rpx 100rpx;background-repeat: no-repeat;width: 100rpx;height: 100rpx;}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

总结和考试

总结和考试 1. 代码规范1.1 名称1.2 注释1.3 todo1.4 条件嵌套1.5 简单逻辑先处理1.6 循环1.7 变量和值 2.知识补充2.1 pass2.2 is 比较2.3 位运算 3.阶段总结4.考试题 1. 代码规范 程序员写代码是有规范的&#xff0c;不只是实现功能而已。 1.1 名称 在Python开发过程中会创…

D55XT100-ASEMI整流桥D55XT100参数、封装、规格

编辑&#xff1a;ll D55XT100-ASEMI整流桥D55XT100参数、封装、规格 型号&#xff1a;D55XT100 品牌&#xff1a;ASEMI 正向电流&#xff08;Id&#xff09;&#xff1a;55A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1000V 正向浪涌电流&#xff1a;550A 正向…

shell脚本之循环语句

一 echo命令 echo -n 表示不换行输出 echo -e 表示输出转义符 常用的转义符&#xff1a;要举例为证 二 date date查看当前系统时间 -d 你描述的日期&#xff0c;显示指定字符串所描述的时间&#xff0c;而非当前时间 %F 完整日期格式&#xff0c;等价于 %Y…

跟着pink老师前端入门教程-day11

3、CSS 三角 网页中常见一些三角形&#xff0c;使用CSS直接画出来即可&#xff0c;不必做成图片或字体图标 4、CSS 用户界面样式 4.1 什么是界面样式 界面样式&#xff1a;更改一些用户操作样式&#xff0c;以便提高更好的用户体验&#xff08;更改用户的鼠标样式、表单轮廓…

uniapp 使用echarts做折线图条形图。

提前10天把中烟活动做完了&#xff0c;以为能打酱油到除夕那天&#xff0c;结果又要做什么数据看板&#xff0c;方便烟草领导过年查看数据&#xff0c;还只给5天时间&#xff0c;真实压榨剥削啊&#xff0c;下辈子再也不‘拍黄片’了&#xff0c;不&#xff01;下份工作我就转前…

HCIA学习作业二

要求&#xff1a;基于192.168.1.0/24进行合理划分&#xff0c;要求全网通 [AR3]display ip interface brief [AR3]display ip routing-table [AR1]display ip interface brief [AR1]display ip routing-table [AR2]display ip interface brief [AR2]display ip routing-tab…

STM32(更新中)

目录 1 时钟&#xff08;心跳&#xff09; 1.1 CubeMX基本配置 1.2 外设在时钟上的分配原理 1.3 时钟树 2 寄存器&#xff08;地址&#xff09; 3 GPIO 3.1 GPIO实物 3.2 GPIO两种结构&#xff08;推挽/开漏&#xff09; 3.3 LED 3.4 CUBEMX 3.5 常用函数 …

利用aiohttp异步爬虫实现网站数据高效抓取

前言 大数据时代&#xff0c;网站数据的高效抓取对于众多应用程序和服务来说至关重要。传统的同步爬虫技术在面对大规模数据抓取时往往效率低下&#xff0c;而异步爬虫技术的出现为解决这一问题提供了新的思路。本文将介绍如何利用aiohttp异步爬虫技术实现网站数据抓取&#x…

【深度学习】sdxl中的 tokenizer tokenizer_2 区别

代码仓库&#xff1a; https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main 截图&#xff1a; 为什么有两个分词器 tokenizer 和 tokenizer_2&#xff1f; 在仔细阅读这些代码后&#xff0c;我们了解到 tokenizer_2 主要是用于 refiner 模型的。 #…

如何在yolov8中验证时计算FPS

ultralytics-main/ultralytics/engine/validator.py文件下&#xff0c;第200行左右&#xff0c;添加如下代码 LOGGER.info(fFPS:{(1000 / sum(self.speed.values())):.2f}) speed.values()是一个字典&#xff0c;包括preprocess,inference,loss,postprocess的时间&#xff0c;所…

node 第二十三天 mongoDB shell 命令 CRUD 增删改查 基础

什么是 mongoDB shell 命令 mongoDB shell 命令就是在cmd窗口或者powershell窗口与mongoDB交互的命令, 以下简称mongosh 对应我们上一天安装的 mongosh 工具 有什么用 mongosh 对一般的开发者可能意义不大, 因为在开发过程中我们会基于某一款语言来使用mongoDB, 比如在node端我…

研发日记,Matlab/Simulink避坑指南(七)——数据溢出钳位Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(三)——向上取整Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑…