微信小程序实现js控制动画——点击播放动画

2023-11-03

功能需求:点击刷新图标,图标旋转进入Loading状态,加载完毕,动画停止

//index.wxml
<view class="flex-col group_2">
	<text decode="decode" class="text_1">{{userInfo.nickName}}</text>
	<view class="flex-row items-center section_1" hover-class="down_state" hover-stay-time="{{50}}" catchtap="setAnimation">
		<van-icon name="http://xxx.xxxx.com/app/xxx.png" class="image_1" />
		<text decode="decode" class="text_2">余额</text>
		<van-icon animation="{{animation}}" name="/assets/reflash.png" />
	</view>
</view>
// index.js
Page({
  data: {
    animation: null
  },
  setAnimation() {
    this.startAnimationInterval()
    this.reloadInfo()
  },
  reloadInfo() {
    const that = this
    wx.showLoading({
      title: '刷新中',
      mask: true
    })
    getUserInfo().then(res => {
      wx.hideLoading()
      if (res.code === 200) {
        wx.showToast({
          title: '刷新成功',
          icon: 'none',
          duration: 1000
        })
        wx.setStorageSync('userInfo', res.data)
        that.getUsers()
        that.stopAnimationInterval()
      } else {
        wx.showToast({
          title: res.message,
          icon: 'none',
          duration: 2000
        })
      }
    })
  },
  getUsers() {
    let userInfo = wx.getStorageSync('userInfo')
    if (userInfo) {
      this.setData({
        userInfo
      })
    }
  },
  /**
   * 实现image旋转动画,每次旋转 120*n度
   */
  rotateAni: function (n) {
    _animation.rotate(120 * (n)).step()
    this.setData({
      animation: _animation.export()
    })
  },
  /**
   * 开始旋转
   */
  startAnimationInterval: function () {
    var that = this;
    that.rotateAni(++_animationIndex); // 进行一次旋转
    _animationIntervalId = setInterval(function () {
      that.rotateAni(++_animationIndex);
    }, _ANIMATION_TIME); // 每间隔_ANIMATION_TIME进行一次旋转
  },

  /**
   * 停止旋转
   */
  stopAnimationInterval: function () {
    if (_animationIntervalId > 0) {
      clearInterval(_animationIntervalId);
      _animationIntervalId = 0;
    }
  },
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序实现js控制动画——点击播放动画 的相关文章

  • 如何从 JavaScript 中的字符串中删除空白字符?

    如何从 JavaScript 中的字符串中删除空白字符 修剪很容易 但我不知道如何将它们从inside字符串 例如 222 334 gt 222334 您可以使用正则表达式 如下所示来替换所有空格 var oldString 222 334
  • 在 Google 表格脚本中设置活动单元格的值

    我想创建一个公式 在某个单元格更改上创建时间戳 下面的代码就可以了 我现在想做的是将公式转换为纯文本 将该时间戳锚定到工作表上 如果您手动执行此操作 您将选择时间戳 复制它们并将它们粘贴为值 我不想手动执行此操作 因此我创建了下面的脚本 它
  • libxmljs 的替代品 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目标 使用 Node js 访问网页 使用 xpath 语法操作 DOM 并打印新的 DOM libxm
  • 将 R (ramda) 导入 typescript .ts 文件

    我正在尝试使用Ramda js如下
  • 如何将 Django 中的数组传递给模板并在 JavaScript 中使用它

    我想将数组传递给模板 然后通过 JavaScript 使用它 In my views py I have arry1 Str 500 20 return render to response test html array1 arry1 在
  • 如何在bootstrap中默认隐藏侧边栏?

    我在这里有一个很好的参考 作为 Bootstrap 在设计 Web 表单应用程序时的侧边栏 http startbootstrap com template overviews simple sidebar http startbootst
  • JavaScript - 无需布尔值即可运行一次

    有没有办法只运行一段JavaScript代码ONCE 而不使用布尔标志变量来记住它是否已经运行过 具体来说not就像是 var alreadyRan false function runOnce if alreadyRan return a
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 递归修剪对象中所有元素的更好方法?

    如果我有一个像这样的物体 const obj field subfield innerObj a asdasd asdas innerArr s ssad innerArrObj b adsad 我想出了这样的东西 const trimFi
  • window.open:是否可以打开一个新窗口并修改其 DOM

    我想打开一个新窗口 var my window open iframe html blank height 600 width 600 但当我打开它时 我想修改它的DOM 我尝试过 var div my document createEle
  • 游戏手柄 JavaScript 未能按预期更新

    我正在尝试让浏览器报告我的 XBOX 控制器的状态 然而 在第一次按下按钮后 它似乎变得 卡住 我究竟做错了什么
  • html canvas动画卡顿

    谁能解释为什么提供的画布动画断断续续 我创建了一个测试存根来演示该问题 我在桌面上的 FF Chrome IE 以及 Android 上的 FF 和 Chrome 中看到了卡顿现象 口吃是由于垃圾收集造成的吗 似乎 raf 在每次调用时都会
  • 为什么我们使用 SpreadsheetApp.flush()?

    我的理解是 flush https developers google com apps script reference spreadsheet spreadsheet app flush有助于在功能发生时执行这些功能 而无需将它们捆绑在
  • “|”是什么意思(单管道)在 JavaScript 中做什么?

    console log 0 5 0 0 console log 1 0 1 console log 1 0 1 为什么0 5 0返回零 但任何整数 包括负数 都返回输入整数 单管道 有什么作用 这是一个按位或 https developer
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • @aspnet/signalr 与 @microsoft/signalr javascript 库

    aspnet signalr 与 microsoft signalr javascript 库有什么区别 两者似乎都对 DotNetCore SignalR 有效 两者似乎都很活跃 在一些教程中 我找到 aspnet signalr 在Do
  • 检测浏览器选项卡是否具有焦点

    是否有可靠的跨浏览器方法来检测选项卡是否具有焦点 场景是 我们有一个定期轮询股票价格的应用程序 如果页面没有焦点 我们可以停止轮询并为每个人节省流量噪音 特别是当人们喜欢打开具有不同投资组合的多个选项卡时 Is window onblur
  • p5 向量减法“sub”返回错误

    我一直在尝试将 p5 草图上传到 React 构建中 使用react p5 wrapper 我能够成功在屏幕上渲染画布 但是 某些矢量函数会导致错误 var distance this position dist ball position
  • D3 将现有 SVG 字符串(或元素)追加(插入)到 DIV

    我到处寻找这个问题的答案 并找到了一些我认为可能有用的资源 但最终没有让我找到答案 这里有一些 外部SVG http bl ocks org mbostock 1014829 嵌入SVG https stackoverflow com qu
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃

随机推荐

  • 简单工厂(Simple Factory)

    文章目录 1 代码示例 2 简单工厂模式的定义 实现意图 工厂模式 通过把创建对象的代码包装起来 做到创建对象的代码与具体的业务逻辑代码相隔离的目的 工厂模式可以细分为 简单工厂模式 工厂方法模式 抽象工厂模式 1 代码示例 include
  • servlet实现图片的上传

    servlet实现图片的上传 我们通常说的上传图片 是将图片上传到服务器上面 本篇以tomcat为例 实现简单的本地图片上传服务器 一 图片的上传需要引入两个jar包 commons fileupload 1 4 jar 下载地址 http
  • 深度详解 View.post() 为何能够获取到 View 的宽高值?

    文章目录 1 简介 1 1 问题描述 1 2 结果展示 2 源码分析 2 1 View post 方法添加任务 2 2 HandlerActionQueue post 方法添加任务 2 3 探究 AttachInfo 的由来 2 3 1 A
  • 爬取在线论坛帖子:使用 Python 获取帖子及评论

    在这篇博客中 我们将学习如何使用 Python 编写一个网络爬虫 从一个在线论坛 例如 Reddit 中获取帖子及其评论 我们将使用 requests 和 BeautifulSoup 库来实现这个功能 文章将包括以下内容 目录 1 爬虫的基
  • 重写、覆盖、重载、隐藏、多态几个概念的区别分析

    override gt 重写 覆盖 overload gt 重载 polymorphism gt 多态 override是重写 覆盖 了一个方法 以实现不同的功能 一般是用于子类在继承父类时 重写 重新实现 父类中的方法 成员函数的重载 o
  • 论文阅读:CLIP2Video: Mastering Video-Text Retrieval via Image CLIP

    动机 之前的大多都是试图从大规模的视频文本数据集中提取视频的时空特征以及视频和语言之间的多模式交互 作者将在图像语言中预训练的模型迁移到视频文本检索任务中 而之前这种使用这种方式的工作大多都是基于证明这种迁移学习是有效的 以验证CLIP模型
  • [BABEL] Note: The code generator has deoptimised the styling of "unknown" as it exceeds the max of "

    BABEL Note The code generator has deoptimised the styling of unknown as it exceeds the max of 500KB babelrc文件添加 compact
  • 构建Python pandas基于SSH远程MySQL和PostgreSQL的数据分析

    如果您无法从外部环境直接访问数据库 则可能需要SSH隧道来查询它 在这篇文章中 我将向您展示如何通过SSH连接并查询MySQL数据库到Pandas数据框 可以将相同的代码应用于连接到其他数据库 例如PostgreSQL 假设您的数据库托管在
  • Spring 基础教程之一:Spring简介

    明天就要讲传说中的spring了 不知道它是否像老师说的那样简单且神奇 spring的英文翻译是春天 泉水 弹簧 活跃的意思 不知道像我们这样的距找工作还有50天左右的人来说 我们的春天是否到了 在这个春天我们是否能够喝上甘甜的泉水 然后像
  • aps是什么意思_全画幅大还是中画幅大? 为什么说底大一级压死人

    经典摄影教程 总第十期 书接上文 是什么造成了画面的 空间感 其中我们谈到了当我们使用不同焦距的时候 我们的拍摄距离往往也会改变 但是这个焦距说的就是等效焦距 在什么是等效焦距 一文中 也说了等效焦距是因为传感器大小不同产生的讨厌的东西 那
  • Redis零基础小白篇

    一 Redis概述 1 是什么 是存在内存中的数据库 是Key Value数据库 MySQL是关系数据库 2 能干什么 一个程序中大部分操作都是查询 少部分操作是写入 所以用MySQL作存储 Redis作查询 所有查询先查询Redis 没有
  • 用遗传算法(GA)做最优化:找一元及多元函数的最大值

    一元函数 对于如下图所示的一元函数求解其在区间 0 7 内的最大值有多种方式 在本文中分享的是用一种启发式算法 遗传算法来完成这项工作 大家对遗传算法不了解的话可以戳这里看简介 首先介绍我们的主角 也就是目标函数的形式 其定义如下 def
  • Drools规则引擎入门学习记录

    业务开发过程中 对于某些判断性的通用规则是基于if else封装 还是基于策略模式封装 无论以上那种封装出来的方法 只能在单体软件包中共用 且不能无感部署 然而对于业务而言 可能规则改变的比较频繁 例如与营销有关的活动 会频繁的修改商品价格
  • (css必看)禁止用户拖动,禁止选中复制,禁止输入框输入

    目录 特殊的css 下面每一个都必须了解 1 user select属性可以设置是否允许用户选择页面中的图文内容 2 user drag属性可以设置是否允许页面元素拖拽 3 user modify属性可以设置是否允许输入框输入内容 特殊的c
  • xmlHttpRequest的status的值的含义

    转自 http www cnblogs com zhubaoxu archive 2008 03 17 1109315 html 虽然常写ajax方面的东西 但是很少去专门了解xmlHttpRequest的status各个值的含义 只是在用
  • C语言基础知识--static 关键字

    目录 一 static 修饰全局变量 二 static 修饰局部变量 三 static 修饰函数 一 static 修饰全局变量 此用法多出现在由多个源文件组成的项目中 static修饰表示该变量只可在定义该变量的文件下访问该static变
  • MinGW安装教程

    前言 本文主要讲述如何安装 C语言 编译器 MinGW 特点是文章附有完整详细的实际安装过程截图 文字反而起说明提示作用 编写本文的原因始于我的一个观点 图片可以比文字传达更多的信息 也能让其他人更容易理解作者的意图及思想 因此 我将安装
  • luckysheet内网(离线)使用

    luckysheet内网 离线 使用 需要先把有关联网引用的文件 搞下来 const dependScripts https cdn jsdelivr net npm vue 2 6 11 expendPlugins chart onlin
  • [Unity 3D] 求两个向量间的夹角的方法

    1 Vector3 d1 transform forward Vector3 d2 new Vector3 0 3 0 float angle Vector3 Angle d1 d2 2 Vector3 d1 transform forwa
  • 微信小程序实现js控制动画——点击播放动画

    功能需求 点击刷新图标 图标旋转进入Loading状态 加载完毕 动画停止 index wxml