クロスドメイン
iframe
がビューポートにスクロールされると、低フレームレートを取得する必要があります。これは、クロスドメイン
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
の位置を変更しますが、うまく機能しませんでした。フレームレートが下がっていたかどうかさえわかりません。
ありがとう!