aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/api/window/requestanimationframe
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pt-br/web/api/window/requestanimationframe
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz
translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2
translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip
initial commit
Diffstat (limited to 'files/pt-br/web/api/window/requestanimationframe')
-rw-r--r--files/pt-br/web/api/window/requestanimationframe/index.html106
1 files changed, 106 insertions, 0 deletions
diff --git a/files/pt-br/web/api/window/requestanimationframe/index.html b/files/pt-br/web/api/window/requestanimationframe/index.html
new file mode 100644
index 0000000000..3adca4b22f
--- /dev/null
+++ b/files/pt-br/web/api/window/requestanimationframe/index.html
@@ -0,0 +1,106 @@
+---
+title: window.requestAnimationFrame()
+slug: Web/API/Window/requestAnimationFrame
+tags:
+ - API
+ - DOM
+ - Intermediário
+ - Método(2)
+ - Referência do DOM
+ - Timers JavaScript
+translation_of: Web/API/window/requestAnimationFrame
+---
+<p>{{APIRef}}<br>
+ O método <strong><code>window.requestAnimationFrame()</code></strong> fala para o navegador que deseja-se realizar uma animação e pede que o navegador chame uma função específica para atualizar um quadro de animação antes da próxima repaint (repintura). O método tem como argumento uma callback que deve ser invocado antes da repaint.</p>
+
+<div class="note"><strong>Nota: </strong>A rotina callback deve chamar <code>requestAnimationFrame()</code> se quiser animar outro quadro na próxima repaint.</div>
+
+<p>Deve-se chamar esse método sempre que estiver pronto para atualizar a animação na tela. Isso irá requisitar que a função de animação seja chamada antes que o navegador realize a próxima repaint. O número de callbacks é normalmente 60 por segundo, mas geralmente acompanha a taxa de atualização do display na maioria dos navegadores, como recomenda a W3C. A taxa de callbacks é reduzida quando executados em aba de fundo ou em {{ HTMLElement("iframe") }} escondidos para melhorar performance e vida de bateria.</p>
+
+<p>Um único argumento é passado para o método callback, um {{domxref("DOMHighResTimeStamp")}}, que indica o tempo atual no qual callbacks enfileiradas por <code>requestAnimationFrame</code> começam a disparar. Múltiplos callbacks em um único quadro, assim, cada um recebe o mesmo carimbo de data/hora . Esse carimbo de data/hora é um número decimal, em milisegundos, mas com precisão mínima de 1ms (1000 µs).</p>
+
+<h2 id="Syntax" name="Syntax">Sintaxe</h2>
+
+<pre class="syntaxbox">window.requestAnimationFrame(callback);
+</pre>
+
+<h3 id="Parameters" name="Parameters">Parâmetros</h3>
+
+<dl>
+ <dt><code>callback</code></dt>
+ <dd>Parâmetro especificando uma função a ser chamada quando chegar a hora de atualizar a animação para a próxima repaint. O callback possui um único argumento, um {{domxref("DOMHighResTimeStamp")}}, que indica a hora atual (a hora retornada de {{domxref('Performance.now()')}} ) para quando <code>requestAnimationFrame</code> começar a disparar callbacks.</dd>
+</dl>
+
+<h3 id="Valor_de_retorno">Valor de retorno</h3>
+
+<p>Um valor inteiro <code>long</code>, a id da requisição, que identifica unicamente a entrada na lista de callbacks. Esse é um valor não-zero, mas não deve-se assumir mais nada sobre esse valor. Esse valor pode ser passado para {{domxref("window.cancelAnimationFrame()")}} para cancelar a requisição da atualização do callback.</p>
+
+<h2 id="Notes" name="Notes">Exemplo</h2>
+
+<pre class="brush: js">var start = null;
+var element = document.getElementById("ElementoQueVcQuerAnimar");
+element.style.position = 'absolute';
+
+function step(timestamp) {
+ if (!start) start = timestamp;
+ var progress = timestamp - start;
+ element.style.left = Math.min(progress/10, 200) + "px";
+ if (progress &lt; 2000) {
+ window.requestAnimationFrame(step);
+ }
+}
+
+window.requestAnimationFrame(step);
+</pre>
+
+<h2 id="Specification" name="Specification">Especificação</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Especificação</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comentário</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('HTML WHATWG', '#animation-frames', 'requestAnimationFrame')}}</td>
+ <td>{{Spec2('HTML WHATWG')}}</td>
+ <td>Sem mudanças, substitui a anterior</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('RequestAnimationFrame', '#dom-windowanimationtiming-requestanimationframe', 'requestAnimationFrame')}}</td>
+ <td>{{Spec2('RequestAnimationFrame')}}</td>
+ <td>Definição inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2>
+
+<div>{{Compat("api.Window.requestAnimationFrame")}}</div>
+
+<div id="compat-desktop"></div>
+
+<p>[1] Anteriro ao Gecko 11.0 {{geckoRelease("11.0")}}, mozRequestAnimationFrame() podia ser chamado sem parâmetros de entrada. Isso não é mais suportado, como provavelmente não será parte do padrão</p>
+
+<p>[2] O parâmetro do callback é {{domxref("DOMTimeStamp")}} ao invés de {{domxref("DOMHighResTimeStamp")}} se a versão prefixada do método foi utilizada <code>DOMTimeStamp</code> possui apenas precisão de milisegundo, mas <code>DOMHighResTimeStamp</code> possui precisão mínima de microsegundos.  Portanto, o tempo zero é diferente: <code>DOMHighResTimeStamp</code> possui o mesmo tempo zero que <code>performance.now()</code>, mas DOMTimeStamp possui o mesmo tempo zero que <code>Date.now().</code></p>
+
+<p>[3] A chamada correta no Chrome para cancelar a requisição é currently <code>window.cancelAnimationFrame()</code>. Versões anteriores, <code>window.webkitCancelAnimationFrame()</code> e <code>window.webkitCancelRequestAnimationFrame()</code>, foram descontinuados mas possuem suporte por enquanto.</p>
+
+<p>[4] Suporte para a versão prefixada foi removida no Firefox 42.</p>
+
+<h2 id="See_also" name="See_also">Veja também</h2>
+
+<ul>
+ <li>{{domxref("Window.mozAnimationStartTime")}}</li>
+ <li>{{domxref("Window.cancelAnimationFrame()")}}</li>
+ <li><a href="http://weblogs.mozillazine.org/roc/archives/2010/08/mozrequestanima.html">mozRequestAnimationFrame</a> - Post do blog</li>
+ <li><a href="http://paulirish.com/2011/requestanimationframe-for-smart-animating/">requestAnimationFrame for smart animating</a> - Post do blog</li>
+ <li><a href="http://hacks.mozilla.org/2011/08/animating-with-javascript-from-setinterval-to-requestanimationframe/">Animating with javascript: from setInterval to requestAnimationFrame</a> - Post do blog</li>
+ <li><a href="http://blogs.msdn.com/b/ie/archive/2011/07/05/using-pc-hardware-more-efficiently-in-html5-new-web-performance-apis-part-1.aspx">Using PC Hardware more efficiently in HTML5: New Web Performance APIs, Part 1</a> - Post do blog</li>
+ <li><a href="http://www.testufo.com/#test=animation-time-graph" title="http://www.testufo.com/#test=animation-time-graph">TestUFO: Test your web browser for requestAnimationFrame() Timing Deviations</a></li>
+ <li>Paul Irish:  <a class="external external-icon" href="http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/" title="http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/">requestAnimationFrame for Smart Animating</a></li>
+ <li>Paul Irish: <a class="external external-icon" href="http://updates.html5rocks.com/2012/05/requestAnimationFrame-API-now-with-sub-millisecond-precision">requestAnimationFrame API: now with sub-millisecond precision</a></li>
+</ul>