当跨域iframe
滚动到视口中时,我需要获得 LOW 帧速率。这是必需的,因为我想使用requestAnimationFrame()
从跨域iframe
中了解它的位置。例如,
var last_time = 0;
var lst_diff = [];
var avg = 0;
function frame_check(current_time){
var diff = current_time - last_time;
last_time = current_time;
if (lst_diff.length > 5){
lst_diff.shift();
}
lst_diff.push(diff);
var sum = 0;
lst_diff.forEach(function(val){
sum += val;
});
avg = sum / lst_diff.length;
// if (avg < some threshold )
// indicates it is in the viewport
// do something
requestAnimationFrame(frame_check);
}
requestAnimationFrame(frame_check);
当它在视口中时,我可以在iframe
中做些什么来提高效率,从而占用很小的空间并显着降低帧速率?我试着
在canvas
中绘制一些内容,但浏览器会一直在视口外执行;
应用多个text-shadow
等重量级CSS样式并更改div
的位置,但效果不佳。我甚至无法判断帧速率是否下降。
谢谢!
答案 0 :(得分:0)
我真的不明白你要做什么,但也许你可以用setInterval(frame_check,1000/60)
非常频繁地检查iframe位置(60秒检查)。降低帧速率听起来不像是我的解决方案,但也许我错了......