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

微信小程序点赞动画特效实现

这里提供两种实现点赞动画特效的方法:

方法一:使用 CSS 动画

  1. wxml 文件:
<view class="like-container"><image src="{{isLiked ? likedImg : unlikedImg}}" class="like-icon {{isLiked ? 'liked' : ''}}" bindtap="toggleLike"></image>
</view>
  1. wxss 文件:
.like-container {position: relative;
}.like-icon {width: 30px;height: 30px;
}.liked {animation: likeAnimation 0.5s ease-out;
}@keyframes likeAnimation {0% {transform: scale(1);opacity: 0;}50% {transform: scale(1.5);opacity: 1;}100% {transform: scale(1);opacity: 0;}
}
  1. js 文件:
Page({data: {isLiked: false,likedImg: '/path/to/liked-icon.png',unlikedImg: '/path/to/unliked-icon.png',},toggleLike() {this.setData({isLiked: !this.data.isLiked})}
})

解释:

  • 在 wxml 中,使用 image 组件展示点赞图标,并绑定 toggleLike 函数到点击事件。
  • 在 wxss 中,使用 @keyframes 定义动画 likeAnimation,实现缩放和渐隐效果。
  • 在 js 中,通过 isLiked 变量控制点赞状态,并动态切换图片和添加动画效果。

方法二:使用 canvas 绘制动画

  1. wxml 文件:
<view class="like-container"><canvas canvas-id="likeCanvas" class="like-canvas"></canvas><image src="{{isLiked ? likedImg : unlikedImg}}" class="like-icon" bindtap="toggleLike"></image>
</view>
  1. wxss 文件:
.like-container {position: relative;
}.like-canvas {position: absolute;top: 0;left: 0;width: 30px;height: 30px;
}.like-icon {width: 30px;height: 30px;
}
  1. js 文件:
Page({data: {isLiked: false,likedImg: '/path/to/liked-icon.png',unlikedImg: '/path/to/unliked-icon.png',},toggleLike() {this.setData({isLiked: !this.data.isLiked})this.drawLikeAnimation()},drawLikeAnimation() {const ctx = wx.createCanvasContext('likeCanvas', this)// ... 使用 canvas API 绘制点赞动画,例如:绘制心形、气泡等}
})

解释:

  • 在 wxml 中,使用 canvas 组件作为动画容器,并使用 image 组件展示点赞图标。
  • 在 wxss 中,将 canvas 组件绝对定位在 image 组件上方。
  • 在 js 中,使用 canvas API 绘制点赞动画,例如绘制心形、气泡等。

两种方法的比较:

  • CSS 动画简单易用,但效果较为单一。
  • Canvas 动画更加灵活,可以实现更复杂的动画效果,但需要编写更多代码。

总结:

以上两种方法都可以实现点赞动画效果,您可以根据实际需求选择合适的方案。

相关文章:

微信小程序点赞动画特效实现

这里提供两种实现点赞动画特效的方法&#xff1a; 方法一&#xff1a;使用 CSS 动画 wxml 文件: <view class"like-container"><image src"{{isLiked ? likedImg : unlikedImg}}" class"like-icon {{isLiked ? liked : }}" bindta…...

Day25笔记-普通文件读写with上下文二进制文件csv文件

一、文件读写【重点掌握】 常见文件的读写分类&#xff1a; ​ 1.普通文件文件,如txt&#xff0c;py&#xff0c;html等 ​ 2.二进制文件&#xff0c;如图片&#xff0c;音频&#xff0c;视频&#xff0c;压缩包等 ​ 3.csv文件&#xff0c;如csv,需要借助于系统模块csv ​ 4.对…...

MySQL安装教程

MySQL安装教程 如果需要删除原有mysql&#xff0c;然后安装过新的&#xff0c;可以参照如何彻底卸载旧mysql重装测试 1. 准备资源 mysql官网直达&#xff1a;https://dev.mysql.com/downloads/mysql/ CADN&#xff1a;https://download.csdn.net/download/luocong321/89592962 …...

【Windows】快速帮你解决如何找到 Windows 上的 .condarc 文件

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

『正版软件』XYplorer 专业的 Windows 文件管理工具软件

在数字化时代&#xff0c;我们每天都在与各种文件打交道。无论是工作文档、个人照片还是多媒体资料&#xff0c;管理这些文件的效率直接关系到我们的工作效率和生活体验。今天&#xff0c;我要向大家推荐一款功能强大、操作简便的文件管理软件 —— XYplorer。 XYplorer&#x…...

“吉林一号”宽幅02B系列卫星

离轴四反光学成像系统 1.光学系统参数&#xff1a; 焦距&#xff1a;77.5mm&#xff1b; F/#&#xff1a;7.4&#xff1b; 视场&#xff1a;≥56゜&#xff1b; 光谱范围&#xff1a;400nm&#xff5e;1000nm。 2.说明&#xff1a; 光学系统采用离轴全反射式结构&#xff0c;整…...

我的AI工具箱Tauri版-FasterWhisper音频转文本

本教程基于自研的AI工具箱Tauri版进行FasterWhisper音频转文本服务。 FasterWhisper音频转文本服务 是自研AI工具箱Tauri版中的一款模块&#xff0c;专门用于将音频或视频中的语音内容自动转化为文本或字幕。通过简单的配置&#xff0c;该工具能够批量处理大量音频或视频文件&…...

Java后端中的延迟队列实现:使用Redis与RabbitMQ的不同策略

Java后端中的延迟队列实现&#xff1a;使用Redis与RabbitMQ的不同策略 大家好&#xff0c;我是微赚淘客返利系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在后端开发中&#xff0c;延迟队列&#xff08;Delayed Queue&#xff09…...

Linux中使用cp命令的 -f 选项,但还是提醒覆盖的问题

问题&#xff1a; linux 在执行cp的命令的时候&#xff0c;就算是执行 cp -f 也还是会提醒是否要进行替换。 问题原因&#xff1a; 查看别名&#xff0c;alias命令&#xff0c;看到cp的别名为cp -i&#xff0c;那就是说cp本身就是自带覆盖提醒&#xff0c;就算我们加上-f 的…...

互联网技术的持续演进:从现在到未来

互联网技术的持续演进&#xff1a;从现在到未来 在过去的十年里&#xff0c;互联网技术发生了飞速变化。无论是大数据、人工智能&#xff0c;还是5G网络和物联网&#xff0c;每一种技术的突破都在改变我们的生活方式和工作模式。作为现代社会的核心驱动力&#xff0c;互联网技…...

vscode安装ESLint与Vetur插件后自动修复代码不生效

vscode安装ESLint与Vetur插件后自动修复代码不生效 1、安装ESLint 和 Vuter 2、运行结果 2.1、代码保存时代码中的分号;能被检测出来,但是不会自动修复 2.2、手动运行ESLint 修复命令(在终端中执行 npx eslint . --fix)可以修复问题 3、解决办法 在.vscode目录下setti…...

2848、与车相交的点

2848、[简单] 与车相交的点 1、题目描述 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i&#xff0c;nums[i] [starti, endi] &#xff0c;其中 starti 是第 i 辆车的起点&#xff0c;endi 是第 i 辆车的终点。 返回数轴上被车 任意…...

基于k8s手动部署rabbitmq集群(Manually Deploying RabbitMQ Cluster Based on k8s)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...

mybatis 配置文件完成增删改查(四) :多条件 动态sql查询

文章目录 就是你在接收数据时&#xff0c;有的查询条件不写&#xff0c;也能从查到相应的stauts也可能为空恒等式标签 代替where关键字 就是你在接收数据时&#xff0c;有的查询条件不写&#xff0c;也能从查到相应的 注意是写字段名 还是 属性名 companyName不写也能查出满足…...

先楫HPM6750 Windows下VSCode开发环境配置

用的是EVKmini&#xff0c;ft2232作为调试器jtag接口调试 启动start_gui.exe 以hello_world为例&#xff0c;更改一下build path&#xff0c;可以generate并使用gcc compile 最后会得到这些 点击start_gui里面的命令行&#xff0c;用命令行启动vscode 新建.vscode文件夹&…...

【JavaScript】LeetCode:41-45

文章目录 41 排序链表42 合并k个升序链表43 LRU缓存44 二叉树的中序遍历45 二叉树的最大深度 41 排序链表 递归 归并排序找到链表中心点&#xff0c;从中心点将链表一分为二。奇数个节点找中心点&#xff0c;偶数个节点找中心左边的点作为中心点。快慢指针找中心点&#xff0c…...

数据结构(Day18)

一、周学习内容 1、9.18 数据结构&#xff08;Day15&#xff09;-CSDN博客 2、9.19 数据结构&#xff08;Day16&#xff09;-CSDN博客 3、9.20 链表 目的 插入删除不需要移动任何节点&#xff08;元素&#xff09;。 不需要预估存储空间大小&#xff0c;长度动态增长或减小。…...

error: ‘InsertAtTop‘ was not declared in this scope

Qt编译错误记录&#xff1a; 报错&#xff1a;error: ‘InsertAtTop’ was not declared in this scope ui->comboBoxJob->setInsertPolicy(InsertAtTop);这行代码在Qt中编译就会报这个错误&#xff0c;原因是输入参数需要加类名限定&#xff0c;改为&#xff1a; ui-…...

MySQL缓冲池详解

Buffer Pool 本文参考开源项目&#xff1a;小林coding在线文档&#xff1b; 01-缓冲池概述 ​ 在MySQL查询数据的时候&#xff0c;是通过存储引擎去磁盘做IO来获取数据库中的数据&#xff0c;这样每次查询一条数据都要去做一次或者多次磁盘的IO&#xff0c;无疑是非常慢的。…...

【我的 PWN 学习手札】tcache stash with fastbin double free —— tcache key 绕过

参考看雪课程&#xff1a;PWN 探索篇 前言 tcache key 的引入使得 tcache dup 利用出现了困难。除了简单利用 UAF 覆写 key 或者House Of Karui 之外&#xff0c;还可以利用 ptmalloc 中的其他机制进行绕过。 一、Tcache Stash with Fastbin Double Free 之前是 double free …...

帕鲁杯第二届应急响应:jumpserver,waf,mysql,sshserver,server01,Palu03,Palu02,每个靶机的漏洞总结

一、题目描述1.提交堡垒机中留下的flag2.提交waf中隐藏的flag3.提交mysql中留下的flag4.提交攻击者的攻击IP5.提交攻击者的最早攻击时间6.提交web服务泄露的关键文件名7.提交泄露的邮箱地址作为flag进行提交8.提交立足点服务器ip地址9.提交攻击者使用的提权用户密码10.提交攻击…...

告别频繁中断!华大HC32F4A0串口DMA接收实战:用TIMEOUT中断替代STM32的IDLE

HC32F4A0串口DMA接收优化&#xff1a;TIMEOUT中断替代STM32 IDLE的工程实践 对于习惯了STM32开发环境的工程师而言&#xff0c;华大半导体的HC32F4A0系列微控制器在串口通信处理上存在一个显著差异——缺少IDLE中断机制。这一差异在RS485通信等需要帧完整性判断的场景中尤为突出…...

嵌入式与复杂系统安全开发实战:从威胁建模到安全编码的十大核心实践

1. 项目概述&#xff1a;为什么安全开发不再是“可选项”&#xff1f;干了十几年软件开发&#xff0c;从早期的桌面应用到后来的Web服务&#xff0c;再到近几年深度参与的嵌入式系统&#xff0c;我最大的感触就是&#xff1a;安全这件事&#xff0c;已经从“锦上添花”变成了“…...

时序分析核心概念与实战:从数据特征到数据库选型

1. 项目概述&#xff1a;为什么我们需要“时序分析”&#xff1f;如果你在金融、物联网、工业制造、运维监控或者电商数据分析等领域工作过&#xff0c;那么“时序数据”这个词对你来说一定不陌生。简单来说&#xff0c;时序数据就是一系列按时间顺序排列的数据点。听起来很简单…...

Kubernete

简介 Kubernetes&#xff08;简称 K8s&#xff09;是一个 开源的容器编排平台&#xff0c;用于自动化 部署、扩展、管理容器化应用 的工具。 假设你有很多个应用&#xff08;比如用 Docker 打包的服务&#xff09;&#xff0c;Kubernetes 能帮你&#xff1a; ✅ 自动部署&#…...

5分钟搞定AI 3D建模!TripoSR:图片秒变专业3D模型的终极方案

5分钟搞定AI 3D建模&#xff01;TripoSR&#xff1a;图片秒变专业3D模型的终极方案 【免费下载链接】TripoSR TripoSR: Fast 3D Object Reconstruction from a Single Image 项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR 还在为复杂的3D建模软件头疼吗&am…...

Unity重型战士Mecanim动画包:开箱即用的战斗动画解决方案

1. 这套动画包到底解决了什么实际问题&#xff1f;在Unity项目开发中&#xff0c;我见过太多团队卡在“角色动不起来”这一步——不是程序写不出状态机&#xff0c;而是美术资源交付后&#xff0c;Animator Controller里一堆红色警告&#xff1a;Missing Avatar、Clip not mapp…...

工控机,怎么突然成了制造业里的“硬通货”?

工控机&#xff0c;怎么突然成了制造业里的“硬通货”&#xff1f; http:/www.lionconit.com 苏州联控信息科技有限公司原创 转载请备注来源 去年底&#xff0c;和一个做机器视觉设备的朋友聊天。 他说现在客户开会&#xff0c;讨论顺序已经变了。 以前大家最关心的是…...

Godot 4.3 RTS开发实战:事件驱动架构与指令队列优化

1. 这不是又一个“Hello World”教程&#xff1a;RTS游戏在Godot里到底难在哪&#xff1f;你点开过十几个“Godot RTS教程”&#xff0c;结果发现前两分钟还在画UI按钮&#xff0c;第三分钟就跳到“接下来我们用NavigationServer实现寻路”——然后卡住。你翻遍官方文档&#x…...

【ElevenLabs潮州话语音实战指南】:20年语音AI专家亲授3大落地陷阱与5步合规部署法

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;ElevenLabs潮州话语音技术全景概览 ElevenLabs 作为全球领先的语音合成平台&#xff0c;长期聚焦于高保真、多语言、情感化TTS技术研发。尽管其官方公开支持的语言列表尚未正式纳入潮州话&#xff08;Teochew&…...