目录

微信小程序中实现进入页面时数字跳动效果(自定义animate-numbers组件)

微信小程序中实现进入页面时数字跳动效果

  • [1. 组件定义,新建```animate-numbers```组件](#1. 组件定义,新建animate-numbers组件)
    • [1.1 index.js](#1.1 index.js)
    • [1.2 wxml](#1.2 wxml)
    • [1.3 wxss](#1.3 wxss)
  • [2. 使用组件](#2. 使用组件)

1. 组件定义,新建animate-numbers组件

1.1 index.js

j 复制代码
// components/animate-numbers/index.js
Component({
  properties: {
    number: {
      type: Number,
      value: 0
    },
    duration: {
      type: Number,
      value: 1000
    }
  },

  data: {
    displayNumber: 0,
    animationFrameId: null
  },

  observers: {
    'number': function (newNumber) {
      this.animateNumber(newNumber);
    }
  },

  methods: {
    animateNumber(targetNumber) {
      const start = this.data.displayNumber;//旧值
      const end = targetNumber;//新值
      const duration = this.properties.duration;
      const increment = (end - start) / (duration / 16); // 假设每秒60帧,每帧间隔约16ms
      let current = start;
      if(this.data.animationFrameId){
        clearInterval(this.data.animationFrameId);
      }

      const animate = () => {
        current += increment;
        if ((increment > 0 && current >= end) || (increment < 0 && current <= end)) {
          clearInterval(this.data.animationFrameId);
          this.setData({ displayNumber: end });
        } else {
          this.setData({ displayNumber: Math.round(current) });
        }
      };
      this.data.animationFrameId = setInterval(animate, 16);
    }
  },
  // 组件被移除时清除定时器
  detached() {
    clearInterval(this.data.animationFrameId);
  }
});

1.2 wxml

j 复制代码
<view>{{displayNumber}}</view>

1.3 wxss

j 复制代码
page {
  font-size: 48rpx;
  font-weight: bold;
}

2. 使用组件

"animate-numbers": "../../../components/animate-numbers/index"

j 复制代码
 <animate-numbers number="{{attendanceInfo.month_avg_days}}" duration="1000"/>
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
Z编程5 小时前
uniapp微信小程序引入vant组件库
微信小程序·小程序·uni-app
糟糕好吃8 小时前
如何用一个插件让你的 Taro 项目启动快 3 倍?
前端·javascript·微信小程序
凡科网小帆10 小时前
博物馆小程序怎么做?从0到1打造数字化文化窗口
小程序·小程序制作
专注API从业者17 小时前
淘宝API与小程序深度联动:商品详情页“一键转卖”功能开发
大数据·前端·小程序
WEIII17 小时前
全网都找不到!小程序集成第三方 WASM npm 包
前端·微信小程序·webassembly
说私域18 小时前
整合线下资源视角下定制开发开源AI智能名片S2B2C商城小程序的应用研究
人工智能·小程序·开源·零售
橘猫云计算机设计1 天前
ASP.NET图书馆借阅系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·后端·爬虫·小程序·毕业设计·asp.net
凡科网小帆1 天前
VR体验馆如何用小程序高效引流?3步打造线上预约+团购裂变系统
小程序·vr·小程序制作
qq_424409191 天前
微信小程序生成某个具体页面的二维码
微信小程序·小程序