react(taro)实现数字翻动(滚动)效果

如何在React中写出有趣的数字滚动动画 前段时间公司项目需要迭代更新,在这个更新的过程中就添加了一个大数据的数字滚动效果。这让我发现了一个既有趣上手又快的React插件,下面我们看看效果如何。 官网的demo:https://inorganik.github.io/countUp.js/ 安装 使用npm或者yran都可以:npm install react-countup --save 安装好后在package.json中可以看到... 阅读详情

前言

因为公司业务需要,数字发生变化的时候就翻动数字进行变化,要有动画效果....

实现效果

实现逻辑

第一步,把数字显示出来

 第二步,只显示单个数字,也就是溢出隐藏设置对应的宽高

 第三步,移动数字也就是修改定位top值跟加点动画

 完结~~~。

实现代码

公共的css代码

.turn_box_container {
  margin-left: 10rpx;
}

.turn_box_container {
  position: relative;
  display: inline-block;
  float: left;
  overflow: hidden;
  background-color: red;
}

.turn_box {
  position: absolute;
  left: 0;
  top: 0;
  height: auto;
  width: 100%;
  transform-origin: 0 0;
  transition: top 0.8s;
}

.turn_box_number {
  line-height: 100rpx;
  font-size: 66rpx;
  font-family: MicrosoftYaHei-Bold;
  font-weight: bold;
  color: #4898F1;
  text-align: center;
}

taro版

import { Component } from 'react'
import { View, Text } from '@tarojs/components'
import { AtNavBar } from 'taro-ui'
import Taro from '@tarojs/taro'
import "taro-ui/dist/style/components/nav-bar.scss" // 按需引入
import "taro-ui/dist/style/components/icon.scss" // 按需引入

import './index.css'

export default class Index extends Component {
  constructor() {
    super(...arguments)
    this.state = ({
      listAll: [1, 2, 3, 4]
    })
  }
  componentWillMount () { }

  componentDidMount () { }

  componentWillUnmount () { }

  componentDidShow () { }

  componentDidHide () { }

  render () {
    const { listAll } = this.state
    return (
      <View>
        <AtNavBar
          border='fasle'
          onClickLeftIcon={this.handleClick.bind(this)}
          color='#000'
          title='测试页'
          leftIconType ='chevron-left'
        />
        <View onClick={this.handleClick.bind(this)}>变化数字</View>
        <View style="margin: 10rpx">
          {
            listAll.map((item) => {
              return (
                <View className="turn_box_container" style="width: 80rpx; height: 100rpx;">
                  <View className="turn_box" style={ 'top:' + ( -1 * item * 100) +'rpx' }> 
                    <View className="turn_box_number">0</View>
                    <View className="turn_box_number">1</View>
                    <View className="turn_box_number">2</View>
                    <View className="turn_box_number">3</View>
                    <View className="turn_box_number">4</View>
                    <View className="turn_box_number">5</View>
                    <View className="turn_box_number">6</View>
                    <View className="turn_box_number">7</View>
                    <View className="turn_box_number">8</View>
                    <View className="turn_box_number">9</View>
                  </View>
              </View>
              )
            })
          }
         

        </View>
       
      </View>
    )
    
  }
  // 模拟测试数据
  getNumber(){
    let random = Math.floor(Math.random() * (100000- 1) + 1)
    console.log(random)
    
    let randomString = random.toString()
    let arr = []
    for (var i = 0, len = randomString.length; i < len; i += 1) {
      arr.push(randomString.charAt(i))
    }
    this.setState({
      listAll: arr
    })
  }
  run() {
    this.getNumber()
  }
  handleClick() {
    this.run()
  }
}

react版

import { Component } from 'react'

import './index.css'

export default class Index extends Component {
  constructor() {
    super(...arguments)
    this.state = ({
      listAll: [1, 2, 3, 4]
    })
  }
  componentWillMount () { }

  componentDidMount () { }

  componentWillUnmount () { }

  componentDidShow () { }

  componentDidHide () { }

  render () {
    const { listAll } = this.state
    return (
      <div>
        <div onClick={this.handleClick.bind(this)}>变化数字</div>
        <div style="margin: 10rpx">
          {
            listAll.map((item) => {
              return (
                <div className="turn_box_container" style="width: 80rpx; height: 100rpx;">
                  <div className="turn_box" style={ 'top:' + ( -1 * item * 100) +'rpx' }> 
                    <div className="turn_box_number">0</div>
                    <div className="turn_box_number">1</div>
                    <div className="turn_box_number">2</div>
                    <div className="turn_box_number">3</div>
                    <div className="turn_box_number">4</div>
                    <div className="turn_box_number">5</div>
                    <div className="turn_box_number">6</div>
                    <div className="turn_box_number">7</div>
                    <div className="turn_box_number">8</div>
                    <div className="turn_box_number">9</div>
                  </div>
              </div>
              )
            })
          }
         
        </div>
       
      </div>
    )
    
  }
  // 模拟测试数据
  getNumber(){
    let random = Math.floor(Math.random() * (100000- 1) + 1)
    console.log(random)
    
    let randomString = random.toString()
    let arr = []
    for (var i = 0, len = randomString.length; i < len; i += 1) {
      arr.push(randomString.charAt(i))
    }
    this.setState({
      listAll: arr
    })
  }
  run() {
    this.getNumber()
  }
  handleClick() {
    this.run()
  }
}

总结

也没啥总结的...

[React] 手动实现CountTo 数字滚动效果 这个CountTo组件npmjs里当然有大把的依赖存在,不过今天我们不需要借助任何三方依赖,造个轮子来手动实现这个组件。通过研究其他count to插件我们可以发现,数字滚动效果主要依赖于。通过js帧来让数字动起来,数字变化则是依赖于内部的。所以我们需要给组件默认值,防止没有参数时会报错。来选择是否开始动画,同时组件销毁后清除。是必要的,其他都是可选参数。同时写几个工具函数便于后面使用。首先声明组件props类型。好了 我要开启五一假期了!一些相关依赖的监听及处理。最后附上完整代码 – 阅读详情

相关推荐

react数字折叠翻页效果组件

示例: <FlipNumber value={data} /> 注意: value只能传字符串类型

react 数字滑动器_React项目实战(四)滚动的数字

分析:我们要实现一个数字滚动效果,保证每个位上的数字都至少滚动一周,滚动效果是自下往上。让我们先思考一下几个细节:① 方案的选取:css?js?② 滚动的内容是什么?如果使用css动画用什么实现,如果使用js用什么实现?③ 怎么实现每个位上的数字依次停止?目前实现基于 background-position-y 实现定位到具体数字,使用 transition-duration 实现每个位上的数字依...

weixin_39621870的博客 875

react-card-flip:用于翻牌动画的React组件

ReactCardFlip React Card Flip是允许您使用卡片翻转动画的工具。 CSS的功劳归。 演示与范例 现场演示: 要使用npm在本地构建示例,请运行: npm install npm run build-example && npm run start 要使用yarn在本地构建示例,请运行: yarn install yarn build-example && yarn start 然后,应在浏览器中打开 。 如果没有,您可以直接进行。 安装 要使用react-card-flip,请使用以下命令从NPM和npm一起安装它: npm install --save react-card-flip 要使用react-card-flip,请使用以下命令从NPM中将其与yarn一起安装: yarn add react-card-flip 您还可以通过在页面中包含lib/

react 实现数字跳动效果

用到了react-spring。

m0_56648732的博客 665

animated-number-react:使用 React 为数字设置动画的超级简单方法

动画数字React 一个简单的 React 动画数字,使用。 现场演示 用法 $ npm install animated-number-react # OR $ yarn add animated-number-react import AnimatedNumber from "animated-number-react" ; export default class App extends Component { state = { value : 150 , } ; handleChange = ( { target : { value } } ) => { this . setState ( { value } ) ; } ; formatValue = ( value ) => value . toFixed ( 2 ) ; rend

知识抽取框架OneKE

OneKE 中指令的格式采用了类 JSON 字符串的结构,本质上是一种字典类型的字符串。优化知识抽取的性能不仅能够强化模型对世界知识的理解和应用,还能够构建知识要素之间的跨领域的深度关联和依赖,这些都是大规模知识图谱构建的关键依赖。一直是知识图谱大规模落地的关键难题之一,因为真实世界的信息高度碎片化、非结构化,大语言模型在处理信息抽取任务时仍因抽取内容与自然语言表述之间的巨大差异导致效果不佳,自然语言文本信息表达中因隐式、长距离上下文关联存在较多的歧义、多义、隐喻等,给知识抽取任务带来较大的挑战。

qq_32907491的博客 3201

react实现滚动的数字

start是开始的数字 end是结束的数字。

m0_74829310的博客 586

IMU卡尔曼滤波方法详细介绍

本文介绍了基于IMU和卡尔曼滤波的状态估计方法。系统采用9维状态向量(位置、速度、加速度计零偏),通过牛顿运动学建立状态方程,并利用外部位置观测进行校正。详细推导了状态转移矩阵和控制输入矩阵的形式,阐述了预测和更新的计算步骤。同时说明了过程噪声Q和观测噪声R的设置原则,其中Q反映模型不确定性,R取决于传感器精度。该方法可有效融合IMU测量与外部观测数据,实现位置、速度和偏置的联合估计。

haing2019的博客 757

react 数字滑动器_react 不用插件实现数字滚动的效果示例

突然要实现个数字滚动效果,网上一搜,一大堆都是用组件的。我只是想实现个简单的效果而已,决定还是自己搞搞吧。先来看看效果吧也不多说了,实现起来不难,但是有点细节问题需要自己好好琢磨一下大概思路,1.一开始为0,获取第一次数据,记录下来2.和前一次数据进行对比3.然后transform4.最后收工好了,附上代码、export default class Number extends React.Com...

weixin_36261424的博客 972

VIL-SLAM论文翻译:Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping

文章目录写在前面摘要1.引言2.相关工作3.系统概述4.视觉前端5.双目视觉惯性里程计A. IMU预积分因子B. 非结构化视觉因子C. 优化和边缘化6. 激光建图A. LiDAR扫描去畸变B. 帧到地图配准7. LiDAR增强的闭环A. 回环检测B. 回环约束C. 全局位姿图优化D. 重定位8. 实验结果A.平台和软件B.测试和结果C. EuRoCMAV数据集测试9.结论 写在前面 写作参考: robot L 开源代码: 开源代码链接 论文原文: 原文链接 摘要 SLAM是移动和空中机器人的一项基本任务

JaydenQ的博客 2321

高通Camera HAL3调试实战:如何用camxoverridesettings.txt高效抓取日志与dump图像数据

本文深入探讨了高通Camera HAL3调试中camxoverridesettings.txt文件的高效应用,重点介绍了如何通过该文件精准控制日志输出级别与dump图像数据,帮助开发者快速定位移动影像系统中的问题。文章详细解析了日志分级配置、图像数据捕获技巧及典型问题排查流程,为高通Camera HAL3项目开发提供了实用技术点。

weixin_30315905的博客 861

React数字滚动组件 numbers-scroll

初始状态中,数字都在显示框下方等待。虽然个人觉得通过tranform来控制显示位置会更好些,但是目前采用的是方式二,控制margin-top的值来展示数字的位置,效果还算可以了,有兴趣的同学可以改造成transform。数字滚动组件,也可以叫数字轮播组件,这个名字一听就是非常普通常见的组件,第一反应就是想找找网上大佬的东西顶礼膜拜一下,这一搜,还真是没找到趁手的╮(╯▽╰)╭。初始状态中,每个数字展示的窗口下边都有0-9这10个数字在等待中,传入具体数字后,每个窗口就可以开始移动数字的位置了。

b826604005的博客 1106

Verilog实战:手把手教你实现IEEE 754单精度浮点乘法器(附完整代码)

本文详细介绍了如何使用Verilog实现IEEE 754单精度浮点乘法器,包括标准解析、架构设计、Verilog代码实现及优化技巧。通过两级流水线设计,平衡性能与面积,适用于数字信号处理、AI加速器等高性能计算场景。

weixin_33724046的博客 314

数字滚动特效实现(react + d3)

让数字动起来~ 使用d3 + react 封装数字滚动组件

Cting1997的博客 799

哨兵2植被参数反演避坑指南:SNAP中10m/20m分辨率选择与缺失波段处理

本文深入解析了使用SNAP软件进行哨兵2号植被参数反演时的关键操作与决策。核心在于理解SNAP生物物理处理器NNET10m与NNET20m的架构差异,根据是否需要反演冠层叶绿素含量(Cab)等参数,明智选择10米或20米分辨率工作流。文章详细指导了大气校正、波段重采样及处理L2A数据中B01波段“缺失”等常见问题的解决方案,为生态监测与精准农业应用提供清晰的避坑指南和完整实战流程。

wdx01234567的博客 262

uniapp - 最新微信小程序手机号一键登录功能效果,uniapp小程序实现手机号码一键登录,uniapp微信小程序端通过手机号授权完成立即登录操作(详细示例源码,新手小白一键复制开箱即用)

uniapp,微信小程序,uniapp小程序平台,uniApp手机号一键登录,uniapp小程序端手机号一键登录功能,实现微信小程序手机号一键登录,在uniapp中实现获取手机一键登录功能,uniapp手机号快捷登录,uniapp微信小程序授权登录并获取手机号,微信小程序手机号快速验证组件调用方式,uniapp小程序怎么用手机号一键登录,uniapp一键登录流程及代码,如何获取手机号一键登录到小程序,微信小程序获取本机手机号一键登录功能,新手详细教程,详细手机一键登录完整示例代码,uni-app微信unia

✅ 精选推荐文章 1万+

react 数字滚动组件

效果图 给数字做了逗号符分割,更符合国际大额数字的浏览效果。 /* * @Descripttion: * @version: * @Author: dal * @Date: 2021-11-02 16:48:26 * @LastEditors: dal * @LastEditTime: 2021-11-03 13:50:43 */ import "./counter.less" import { Component } from "react"; class Count...

qq_36656155的博客 1249

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

react 数字滑动器_css3 实现数字滚动的动画组件 (react版)

.numbers-container{width:100%;height:50px;line-height:50px;margin-top:6px;display:flex;justify-content:center;$marginTop:50px;@keyframes scrollNumber0{0% { margin-top:0px; }100%{margin-top:-1100;}}@-m...

weixin_39983993的博客 1001

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数字滚动效果

【代码】数字滚动效果。

m0_73577884的博客 169

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

React 中的无限滚动加载数据实现

React开发中,实现无限滚动加载数据是一种常见的用户体验优化手段,尤其适用于需要展示大量数据的列表或网格。通过监听滚动事件,并在接近容器底部时自动加载新数据,可以减少用户的等待时间,提高应用的流畅性和响应速度。下面,我们简单的来实现一下。

u012834688的博客 1119

数字滚动组件(react)

数字滚动组件(react)

aaaadioppa的博客 1261

React项目实战(四)滚动的数字

上一篇React项目实战(三)尝试实现一个拉动刷新组件 需求 分析:我们要实现一个数字滚动效果,保证每个位上的数字都至少滚动一周,滚动效果是自下往上。让我们先思考一下几个细节: ① 方案的选取:css?js? ② 滚动的内容是什么?如果使用css动画用什么实现,如果使用js用什么实现? ③ 怎么实现每个位上的数字依次停止? 目前实现 基于background-position-y实现定位到具体数字...

weixin_33721427的博客 2593

如何在React项目中,创建令人惊叹的动画翻转卡片效果

翻转卡片是一种在网站上展示内容的动态而引人入胜的方法。翻转卡片由正面和背面两个面构成。用户可以通过点击或鼠标悬停来翻转卡片以显示更多信息。本文将向您展示如何在React中轻松构建翻转卡片。为什么翻转卡片是您网站的有价值的补充?翻转卡片可以为您的网站用户界面增添互动和吸引力。翻转卡片能够吸引用户的注意力,并提供视觉上令人愉悦的体验。翻转卡片展示了各种内容,如图片、文字和链接,以简洁小巧的格式呈现。这...

前端达人 910

react实现动态递增展示数字特效

在可视化展示界面时有一种场景,就是页面在初始化的时候,有些数字展示想要从某个值开始动态递增到实际值,形成一种动画效果,一个React组件:动态递增展示数字特效, 使用react-countup组件实现动态效果

资深系统架构,深耕高并发研发与 AI 大模型工程化落地。技术栈以 Python (AI/NLP/RAG/Agent) 与 Golang (高并发架构) 为双核心,兼具 PHP 大型应用经验。专注算法落地、复杂系统设计及团队技术赋能 2450

小程序左上角返回按钮功能修改(这个是不能修改的但是这样做)

我先说一下我的项目要求,从A页面点击报修进到B页面(B页面只有一条数据马上跳转到C页面)C页面可以点击左上角返回等等。。。说白一点就是我想要点击左上角的返回按钮  来实现跳转指定的页面这个我研究就只有这种写法(用户体验可能也不是很好)来到C页面(报修)index.js(自己打印出来看看)给B页面的变量赋值 /** * 生命周期函数--监听页面加载 */ onLoad: function...

echo_Ae的博客 4万+
上一篇: npm run build 打包成功 之后 卡主
下一篇: 小程序与浏览器显示数学平方方法
An_s
博客等级 码龄10年 665粉丝 363原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值