最近,在项目中用到了一个功能,就是进入一个页面,进行数字动态的滚动,当时只顾着去想一些动画的效果了,所以花一点时间,后来自己上网找了一下,发现这个方法挺好的。 1.在一个设定的时间间隔内进行循环的操作
componentWillReceiveProps(next){ //控制数字的滚动 if(next.total!==0 && !this.timer) { this.timer = setInterval( () => { //this.state.start就是这个滚动数字的其实值,然后将其分成21份,每50毫秒进行加一份 let val = this.state.start + parseInt(next.total/21); //当这个数字大于最后显示的数据时,停止 if (val >= next.total) { val = next.total; //停止掉 clearInterval(this.timer); this.timer = undefined; } this.setState({ start: val, }); }, 50 ); }2.定时操作(在某一段时间之后执行某个方法)
componentWillReceiveProps(next){ if(next.total!==0 && !this.timer) { this.timer = setTimeout( () => { alert(‘隔了1000毫秒执行了这个提示!’); }, 1000 ); } } //不用的是时候将其解绑 componentWillUnmount() { this.timer && clearTimeout(this.timer); }