JSFiddle - React, Tailwind, and code Playground
JavaScript
(function(window, document undefined) {
/*--common render(bug fixed by danny8376)--*/
var render = {};
(function (render) {
var requestAnimationFrame = (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function(a){return setTimeout(function() { a(Date.now()) }, 16);}).bind(window);
var cancelAnimationFrame = (window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitcancelAnimationFrame || window.mscancelAnimationFrame || window.clearTimeout).bind(window);
var _renderList = {};
var _renderCount = 0;
var _pageStartTime = -1;
function _renderThreadFactory(id, renderer) {
function sRenderThread(tick) {
if (_renderList[id].playing) {
if (_renderList[id].start == -1) _renderList[id].start = tick;
renderer(tick - _renderList[id].start + _renderList[id].shift);
if (!_renderList[id]) return;
_renderList[id].frameId = requestAnimationFrame(sRenderThread);
_renderList[id].lastTime = tick;
}
}
return sRenderThread;
}
render.setRender = function setRender(renderThread, shift) {
var renderNow = _renderCount, renderThread;
shift = shift || 0;
_renderCount++;
_renderList[renderNow] = {
frameId: 0,
playing: true,
thread: renderThread,
lastTime: 0,
shift: shift,
start: -1
};
renderThread = _renderThreadFactory(renderNow, renderThread);
requestAnimationFrame(renderThread);
return renderNow;
};
render.clearRender = function clearRender(id) {
if (_renderList[id] !== undefined) {
if...