Negi
by mmis1000
HTML
<a...
JavaScript
void((function (window, document, style, undefined) {
var render = {};
(function (render) {
var requestAnimationFrame = (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function(a){return setTimeout(a, 50);}).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) {
renderer(tick + _renderList[id].iShift);
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,
iShift: shift - (Date.now() - _pageStartTime)
};
renderThread = _renderThreadFactory(renderNow, renderThread);
requestAnimationFrame(renderThread);
return renderNow;
};
render.clearRender = function clearRender(id) {
if (_renderList[id] !== undefined) {
if (_renderList[id].playing) {
cancelAnimationFrame(_renderList[id].frameId);
}
_renderList[id] =...