微信小程序:心跳动画

封装工具类

var app = getApp()

module.exports = {
  animationMiddleHeaderItem: animationMiddleHeaderItem,//心跳动画
}

// 平移动画
function animationMiddleHeaderItem(that) {
  var circleCount = 0;
  // 心跳的外框动画  
  that.animationMiddleHeaderItem = wx.createAnimation({
    duration: 1000,    // 以毫秒为单位  
    timingFunction: 'linear',
    delay: 100,
    transformOrigin: '50% 50%',
    success: function (res) {
    }
  });
  setInterval(function () {
    if (circleCount % 2 == 0) {
      that.animationMiddleHeaderItem.scale(1.3).step();
    } else {
      that.animationMiddleHeaderItem.scale(1.0).step();
    }

    that.setData({
      animationMiddleHeaderItem: that.animationMiddleHeaderItem.export()  //输出动画
    });

    circleCount++;
    if (circleCount == 1000) {
      circleCount = 0;
    }
  }.bind(this), 1000);
  return that.animationMiddleHeaderItem;
}

使用:

onLoad: function (options) {
    animationUtil.animationMiddleHeaderItem(this);
}

这里写图片描述

### 微信小程序实现跳动爱心动画教程 #### 使用 CSS 动画创建跳动效果 通过定义 `@keyframes` 来控制元素的变化过程,可以制作出平滑的缩放动画来模拟心跳的效果。具体来说,在 0% 和 100% 的时候保持原始大小并采用缓入的时间函数;而在中间时刻即 50%,则放大到一定比例并且应用缓出的时间函数[^1]。 ```css /* 定义名为heartbeat的关键帧 */ @keyframes heartbeat { 0%, 100% { transform: scale(1); animation-timing-function: ease-in; } 50% { transform: scale(1.3); animation-timing-function: ease-out; } } ``` #### 将动画应用于爱心图标 为了让这个动画作用于特定的 HTML 元素(比如一个带有类名 `.heart` 的 div),只需简单地设置该元素的样式属性即可。这里设置了无限循环播放以及整体的缓入缓出过渡效果。 ```html <!-- 应用了心跳动画样式的div --> <div class="heart"></div> ``` ```css /* 设置心脏图标的样式及其动画特性 */ .heart { width: 50px; /* 可自定义宽度 */ height: 50px; /* 可自定义高度 */ background-color: red; /* 颜色可更改 */ border-radius: 50%; /* 圆形外观 */ display: inline-block; vertical-align: middle; /* 添加之前定义的心跳动画 */ animation: heartbeat 1.5s ease-in-out infinite; } ``` #### 结合 WXML 和 WXSS 文件完成整个页面布局 在微信小程序项目里,通常会有一个对应的 WXML 文件用于描述 UI 组件结构,而另一个 WXSS 文件负责处理这些组件的具体样式。因此可以在相应的 WXML 中引入上述提到的 `<div>` 标签,并确保其关联到了正确的样式表[^4]。 ```xml <!-- index.wxml --> <view class="container"> <!-- 这里的 heart 类对应上面定义好的CSS --> <div class="heart"></div> </view> ``` ```css /* index.wxss */ .container { text-align: center; } .heart { margin-top: 20%; width: 80px; height: 80px; background-image: url('/path/to/your/image.png'); /* 替换成实际图片路径 */ background-size: cover; /* 复制之前的动画配置 */ animation: heartbeat 1.5s ease-in-out infinite; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值