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

13 篇文章 1 订阅
8 篇文章 0 订阅

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

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

总结:

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

实现微信小程序中的历史点赞记录功能,您可以按照以下步骤进行: 1. 创建一个点赞记录页面,可以使用`wx:for`标签和`<view>`标签来展示历史点赞记录。例如: ``` <view wx:for="{{likeList}}" wx:key="{{index}}"> <view>{{item.userName}} 点赞了你的 {{item.type}}</view> <view>{{item.date}}</view> </view> ``` 在上述代码中,`likeList`是一个数组,包含了历史点赞记录的信息,包括用户名、点赞类型和日期。 2. 在对应的js文件中,定义一个`likeList`数组,并在页面加载时从本地存储中获取历史点赞记录信息。例如: ``` Page({ data: { likeList: [] }, onLoad: function(options) { var that = this; wx.getStorage({ key: 'likeList', success: function(res) { that.setData({ likeList: res.data }); } }); } }) ``` 在上述代码中,通过`wx.getStorage`方法从本地存储中获取历史点赞记录信息,并将其设置为页面的`likeList`数据。 3. 在用户点赞时,将点赞信息存储到本地存储中,并更新`likeList`数组。例如: ``` Page({ data: { likeList: [] }, onLike: function(e) { var likeInfo = { userName: "用户A", type: "文章", date: "2021-06-01" }; wx.setStorage({ key: 'likeList', data: [...this.data.likeList, likeInfo] }); this.setData({ likeList: [...this.data.likeList, likeInfo] }); } }) ``` 在上述代码中,将点赞信息存储到本地存储中,并使用ES6的展开运算符将新的点赞记录添加到`likeList`数组中。 通过上述步骤,您就可以在微信小程序实现历史点赞记录功能了。需要注意的是,本地存储的数据是有限制的,如果历史点赞记录过多,可能会导致存储失败。因此,您可以考虑使用云开发或后台服务器来存储历史点赞记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值