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

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

方法一:使用 CSS 动画

  1. wxml 文件:

  2. 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;
    }
    }

  3. 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 文件:

  2. wxss 文件:

    .like-container {
    position: relative;
    }

    .like-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 30px;
    height: 30px;
    }

    .like-icon {
    width: 30px;
    height: 30px;
    }

  3. 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 动画更加灵活,可以实现更复杂的动画效果,但需要编写更多代码。

总结:

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

相关推荐
光依旧8 小时前
发版就掉请求?Spring Boot优雅停机的四步
运维·spring boot·nginx·高可用·优雅停机·mcp server
fengGer的bugs9 小时前
新生儿喂养记录微信小程序:本地存储、四套主题,以及一份可改期的疫苗体检日程
微信小程序
5G微创业12 小时前
去除抖音视频水印的Python实现
python·微信小程序·去水印
WeiXin_DZbishe12 小时前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
小蒜学长15 小时前
基于微信小程序的医院医疗废弃物追溯管理系统(代码+数据库+LW)
java·spring boot·后端·微信小程序·医疗废弃物
霍营_托尼15 小时前
微信小程序点餐项目实战:飞入动画、样式错位、弹窗不消失,7 个前端坑的完整排障记录
javascript·微信小程序·动效
andrsted17 小时前
练题簿在线免费刷题:选择、填空、简答与排序,多种题型练出不同的掌握程度
学习·微信小程序·小程序·学习方法·刷题
andrsted1 天前
练题簿在线免费刷题:Word、PDF 导题与预览补全,把现成资料变成可练习题库
微信小程序·小程序·pdf·word·学习方法·刷题
计算机毕设定制辅导-无忧学长1 天前
《校园食堂在线订餐小程序的设计与实现》
java·vue.js·spring boot·微信小程序·uniapp·校园食堂在线订餐小程序
Lvan的前端笔记2 天前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker