数字变化效果
npm install react-countup --save
import React from 'react'
import CountUp from "react-countup";
export default function index() {
return (
<div>
<CountUp start={3} end={20.98} duration={2} />
</div>
)
}
import React, { useState, useRef, useEffect } from 'react';
export const useTime=(goal: number) =>{
const [count, setCount] = useState(0);
const initialized = useRef(false);
const callFc = (_count: number) => {
const timer = setTimeout(() => {
setCount((v) => ++v);
clearTimeout(timer);
if (_count + 1 < goal) callFc(_count + 1);
}, 100);
};
useEffect(() => {
if (!initialized.current) {
initialized.current = true;
console.log(initialized);
callFc(count);
}
}, []);
return {count};
}
import React from 'react'
import {useTime} from './useCountUp'
export default function Index() {
const {count}= useTime(31)
return (
<div>{count}</div>
)
}
css实现
.wrap{
height: 200px;
border: 1px solid red ;
}
@keyframes count {
to {
--t: 70
}
}
.wrap:hover .like::after{
/**/
--t:0;
counter-reset: time var(--t);
content: counter(time);
animation: count 1s steps(44) forwards;
}
@property --t {
syntax: '<integer>';
inherits: false;
initial-value: 10;
}
.like::after{
--t:70;
transition: .3s all;
counter-reset: time var(--t);
content: counter(time);
width: max-content;
font-size: 2rem;
font-style: italic;
font-weight: bolder;
}
本文来自博客园,作者:zjxgdq,转载请注明原文链接:https://www.cnblogs.com/zjxzhj/p/17248310.html

浙公网安备 33010602011771号