1234567891011121314151617181920212223 |
- /**
- * 执行动画函数
- * @param {Function} callback 回调函数
- * @param {boolean} isEnd 是否停止
- * @param {number} duration 绘制的间隔时间(默认1s)
- */
- export default function animation(callback, duration = 1000) {
- // 判断是否为函数
- if(typeof callback !== 'function') throw new Error('callback is not a function');
- // 判断是否为数字
- if(typeof duration !== 'number') throw new Error('duration is not a number');
- // 判断是否 > 16
- if(duration <= 16) throw new Error('duration is not a Less than or equal to 16');
- let time = Date.now();
- function _run() {
- if (Date.now() - time > duration) {
- time = Date.now();
- callback(_run);
- } else requestAnimationFrame(_run);
- }
- _run();
- }
|