mirror of
https://github.com/StarCitizenTools/mediawiki-skins-Citizen.git
synced 2024-12-11 22:16:22 +00:00
8640d4ef30
This will serve as the groundwork of merging the intersection observers and collapsible toc in the future.
24 lines
596 B
JavaScript
24 lines
596 B
JavaScript
// Adopted from Vector 2022
|
|
/**
|
|
* Helper method that calls a specified callback before the browser has
|
|
* performed a specified number of repaints.
|
|
*
|
|
* Uses `requestAnimationFrame` under the hood to determine the next repaint.
|
|
*
|
|
* @param {Function} callback
|
|
* @param {number} frameCount The number of frames to wait before calling the
|
|
* specified callback.
|
|
*/
|
|
function deferUntilFrame( callback, frameCount ) {
|
|
if ( frameCount === 0 ) {
|
|
callback();
|
|
return;
|
|
}
|
|
|
|
requestAnimationFrame( () => {
|
|
deferUntilFrame( callback, frameCount - 1 );
|
|
} );
|
|
}
|
|
|
|
module.exports = deferUntilFrame;
|