zoukankan      html  css  js  c++  java
  • 分享一个数字跳动的组件

    import { createElement, useEffect, useState } from 'rax';
    import View from 'rax-view';
    import classnames from 'classnames';
    import { isValidNumber } from '@/common/util';
    
    interface NumberAnimationPropsType {
      from?: number;
      value: number;
      speed?: number;
      interval: number;
      className?: string;
      style?: CSSProperties;
    }
    
    export default function NumberAnimation(props: NumberAnimationPropsType) {
      const {
        style,
        className,
        value,
        triggerAnimation = true,
        from = 0,
        speed = 1000,
        interval = 100,
        format = v => v,
      } = props;
    
      const [ numberShow, setNumber ] = useState(from);
    
       function isValidNumber(num) {
          return isNaN(num) ? false : num !== null && num !== 
    undefined && num !== "";
       }
    
      useEffect(() => {
        if (!triggerAnimation) {
          return;
        }
    
        if (!isValidNumber(value)) {
          setNumber(value);
          return;
        }
    
        let loops = Math.ceil(speed / interval),
            increment = parseInt((value - from) / loops),
            loopCount = 0,
            number = from,
            timer = setInterval(updateTimer, interval);
    
        function updateTimer() {
          loopCount++;
    
          if (loopCount >= loops){
            number = value;
            clearInterval(timer);
          } else {
            number += increment;
          }
    
          setNumber(number);
        };
    
        return () => {
          if (timer) {
            clearInterval(timer);
          }
        };
      }, [value, triggerAnimation]);
    
      return (
        <View className={className} style={style}>{format(numberShow)}</View>
      );
    }
  • 相关阅读:
    HTML表单
    CSS等高布局的6种方式
    HTML用户反馈表单
    HTML美化修饰<A>
    sql查询语句 --------一个表中的字段对应另外一个表中的两个字段的查询语句
    jq 表格添加删除行
    js 静止f1到f12 和屏蔽鼠标右键
    手机自适应页面的meta标签
    tp3.2 的验证码的使用
    php多线程抓取网页
  • 原文地址:https://www.cnblogs.com/yujiawen/p/15697101.html
Copyright © 2011-2022 走看看