1***@qq.com
1***@qq.com
  • 发布:2023-03-31 16:57
  • 更新:2024-01-26 21:20
  • 阅读:407

#插件讨论# 【 仪表盘或者环形进度条 - l***@163.com 】报错:window. reques tAnimationFrame

分类:uni-app

报错:window. reques tAnimationFrame 替换一下代码就好了(把最后的代码替换)
原始代码```javascript
(function () {
var lastTime = 0;
var vendors = ['webkit', 'moz'];
for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
window.cancelAnimationFrame =
window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
}

if (!window.requestAnimationFrame)  
    window.requestAnimationFrame = function (callback, element) {  
        var currTime = new Date().getTime();  
        var timeToCall = Math.max(0, 16 - (currTime - lastTime));  
        var id = window.setTimeout(function () { callback(currTime + timeToCall); },  
            timeToCall);  
        lastTime = currTime + timeToCall;  
        return id;  
    };  

if (!window.cancelAnimationFrame)  
    window.cancelAnimationFrame = function (id) {  
        clearTimeout(id);  
    };  

}());


替换  

```javascript  
uni.requestAnimationFrame = function (callback) {  
    var  lastTime=0;  
  var currTime = new Date().getTime();  
  var timeToCall = Math.max(0, 16 - (currTime - lastTime));  
  var id = setTimeout(function () { callback(currTime + timeToCall); }, timeToCall);  
  lastTime = currTime + timeToCall;  
  return id;  
};  

uni.cancelAnimationFrame = function (id) {  
  clearTimeout(id);  
};  

(function () {  
  var lastTime = 0;  
  var vendors = ['webkit', 'moz', 'ms', 'o'];  
  for (var x = 0; x < vendors.length && !uni.requestAnimationFrame; ++x) {  
    uni.requestAnimationFrame = uni[vendors[x] + 'RequestAnimationFrame'];  
    uni.cancelAnimationFrame =  
      uni[vendors[x] + 'CancelAnimationFrame'] || uni[vendors[x] + 'CancelRequestAnimationFrame'];  
  }  
  if (!uni.requestAnimationFrame)  
    uni.requestAnimationFrame = function (callback) {  
      return setTimeout(callback, 16);  
    };  
  if (!uni.cancelAnimationFrame)  
    uni.cancelAnimationFrame = function (id) {  
      clearTimeout(id);  
    };  
})();

这样就可以用了 记得把调用的那两个事件也换一下
就在start里面更换成 uni.requestAnimationFrame(update) 原来的替换一下! 即可使用
start() {
let update = () => {
this.process = this.process + (this.max - this.min) / 100
if (this.process > this.value) {
cancelAnimationFrame(update)
} else {
this.draw()
uni.requestAnimationFrame(update)
}
}
uni.requestAnimationFrame(update);
}

2023-03-31 16:57 负责人:无 分享
已邀请:
l***@163.com

l***@163.com

优秀

要回复问题请先登录注册