<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6008679778074611019</id><updated>2011-09-26T12:38:05.818+02:00</updated><title type='text'>Tulinmola</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tulinmola.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6008679778074611019/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tulinmola.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tulin!</name><uri>http://www.blogger.com/profile/15410696923586661218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6008679778074611019.post-5074444201072997538</id><published>2008-01-28T10:17:00.000+01:00</published><updated>2008-01-28T10:35:01.196+01:00</updated><title type='text'>Animaciones javascript + CSS</title><content type='html'>&lt;p&gt;
Existen varios métodos para obtener animaciones en una web. El más sencillo de todos es usar imágenes gif animadas. De esta forma no hay que escribir código adicional para el cambio de sprite y puede usarse con buenos resultados poniendo unos gifs encima de otros (se colgará en breve un juego 100% javascript usando este sistema).
&lt;/p&gt;

&lt;p&gt;
Mediante javascript se puede cambiar la localización de una imagen cada cierto tiempo (el atriburo &lt;code&gt;src&lt;/code&gt; del tag &lt;code&gt;img&lt;/code&gt;). Se debe tener una imagen para cada fotograma de la animación, lo que provoca un elevado número de elementos a la hora de cargar la página, además de una carga para el navegador al invocar al cambio de un sprite a otro.
&lt;/p&gt;

&lt;p&gt;
El método que se va a presentar se basa en tener todos sprites de la animación en una sola imagen. Esta imagen servirá de fondo para un &lt;code&gt;div&lt;/code&gt; del tamaño del sprite, y simplemente estableciendo el inicio de la misma en el estilo del &lt;code&gt;div&lt;/code&gt; se podrá cambiar de un sprite a otro.
&lt;/p&gt;

&lt;p&gt;
Veamos un ejemplo. Teniendo esta imagen:
&lt;/p&gt;
&lt;img src='http://lh6.google.es/tulinmola/Rssj_c7ty8I/AAAAAAAAAE0/b8oBZEMDtwE/bisho.png' alt='Bisho, imagen completa'/&gt;

&lt;p&gt;
Y la siguiente entrada en la hoja de estilos:
&lt;/p&gt;
&lt;div class='Code'&gt;&amp;lt;style type="text/css"&amp;gt;
  .Bisho {
    width: 45px;
    height: 34px;
    background-image:url(url_de_tu_imagen);
    background-position: 0px 0px;
  }
&amp;lt;/style&amp;gt;
&lt;/div&gt;

&lt;p&gt;
Con &lt;code&gt;width&lt;/code&gt; y &lt;code&gt;height&lt;/code&gt; se establece el tamaño de los sprites. La ruta de la imagen está especificada en el atributo &lt;code&gt;background-image&lt;/code&gt;. Y el último parámetro es la posición desde la que empieza esa imagen seleccionada. Modificando esta posición podemos ver los distintos sprites de la imagen.&lt;/p&gt;

&lt;p&gt;
Se muestran un par de ejemplos simples:
&lt;/p&gt;

&lt;table border='0' style='margin:auto'&gt;
&lt;tr style='text-align:center'&gt;
  &lt;td&gt;
    &lt;div class='Bisho' style='background-position: 0px 0px;'&gt;&lt;/div&gt;
  &lt;/td&gt;
  &lt;td&gt;
    &lt;div class='Bisho' style='background-position: 0px 34px;'&gt;&lt;/div&gt;
  &lt;/td&gt;
&lt;/tr&gt;
&lt;tr style='font-size:11px'&gt;
  &lt;td&gt;
    &lt;code&gt;&amp;lt;div class='Bisho' style='background-position: 0px 0px;'&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;
  &lt;/td&gt;
  &lt;td&gt;
    &lt;code&gt;&amp;lt;div class='Bisho' style='background-position: 0px 34px;'&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;
  &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
Para obtener una animación simplemente hay que modificar el parámetro &lt;code&gt;background-position&lt;/code&gt; cada cierto tiempo. Con el siguiente fragmento de código conseguimos este efecto:
&lt;/p&gt;

&lt;div class='Code'&gt;&amp;lt;script type='text/javascript'&amp;gt;
  var bisho = document.getElementById('bisho');
  var bishoStep = 0;
  var bishoPosition = 0;
  var bishoTimer = null;
  function nextStep(){
    var x = 45*bishoStep;
    var y = 34*bishoPosition;
    bisho.style.backgroundPosition = "-" + x + "px -" + y + "px";
    bishoStep = (bishoStep+1)%8;
    bishoTimer = setTimeout(nextStep, 100)
  }
  nextStep();
&amp;lt;/script&amp;gt;
&lt;/div&gt;

&lt;p&gt;
La variable &lt;code&gt;bisho&lt;/code&gt; hace referencia al elemento del DOM que contendrá nuestro sprite. El paso actual se guardará en &lt;code&gt;bishoStep&lt;/code&gt; y es la variable que sirve para calcular la primera coordenada de la posición del fondo. Se asegura que este valor no esté fuera de rango con la operación módulo. La segunda coordenada se obtiene con la variable &lt;code&gt;bishoPosition&lt;/code&gt; (que en el ejemplo a continuación se modifica mediante el combo-box). Y finalmente se hace que esta función sea llamada dentro de un cierto tiempo mediante el &lt;code&gt;setTimeout&lt;/code&gt;.
&lt;/p&gt;

&lt;style type="text/css"&gt;
  .Bisho {
    width: 45px;
    height: 34px;
    background-image: url(http://lh6.google.es/tulinmola/Rssj_c7ty8I/AAAAAAAAAE0/b8oBZEMDtwE/bisho.png);
/*    background-image: url(http://bp0.blogger.com/_48fKn8eFxt4/RslLsy6aH6I/AAAAAAAAAAM/fq9RygMrUzY/s1600-h/bisho.png);*/
    background-position: 0px 0px;
  }
&lt;/style&gt;

&lt;div id='bisho' class='Bisho'&gt;
&lt;/div&gt;
&lt;select onchange='bishoIndex=this.value'&gt;
  &lt;option value='0'&gt;Derecha&lt;/option&gt;
  &lt;option value='1'&gt;Izquierda&lt;/option&gt;
  &lt;option value='2'&gt;Abajo&lt;/option&gt;
  &lt;option value='3'&gt;Arriba&lt;/option&gt;
&lt;/select&gt;

&lt;script type='text/javascript'&gt;//&lt;![CDATA[
  var bisho = document.getElementById('bisho');
  var bishoStep = 0;
  var bishoIndex = 0;
  var bishoTimer = null;
  function nextStep(){
    var x = 45*bishoStep;
    var y = 34*bishoIndex;
    bisho.style.backgroundPosition = "-" + x + "px -" + y + "px";
    bishoStep = (bishoStep+1)%8;
    bishoTimer = setTimeout(nextStep, 100)
  }
  nextStep();
//]]&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6008679778074611019-5074444201072997538?l=tulinmola.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tulinmola.blogspot.com/feeds/5074444201072997538/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6008679778074611019&amp;postID=5074444201072997538' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6008679778074611019/posts/default/5074444201072997538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6008679778074611019/posts/default/5074444201072997538'/><link rel='alternate' type='text/html' href='http://tulinmola.blogspot.com/2008/01/animaciones-javascript-css.html' title='Animaciones javascript + CSS'/><author><name>Tulin!</name><uri>http://www.blogger.com/profile/15410696923586661218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6008679778074611019.post-4381123430530018642</id><published>2007-08-16T08:52:00.000+02:00</published><updated>2007-08-16T22:56:59.587+02:00</updated><title type='text'>Hola mundo</title><content type='html'>Bueno, he aquí mi primer post...
&lt;br/&gt;
&lt;code&gt;
Hola mundo!
&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6008679778074611019-4381123430530018642?l=tulinmola.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tulinmola.blogspot.com/feeds/4381123430530018642/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6008679778074611019&amp;postID=4381123430530018642' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6008679778074611019/posts/default/4381123430530018642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6008679778074611019/posts/default/4381123430530018642'/><link rel='alternate' type='text/html' href='http://tulinmola.blogspot.com/2007/08/hola-mundo.html' title='Hola mundo'/><author><name>Tulin!</name><uri>http://www.blogger.com/profile/15410696923586661218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
