Изменение позиции бэкграунда через массив
Всем привет! Я новичок, поэтому сильно не пинайте за тривиальные вопросы.
Суть проблемы такова. Я хочу реализовать анимацию слоя посредством перемещения через определенные промежутки времени бэкграунда, состоящего из спрайтов при наведении на него мышкой. Программа "максимум" - реализация той же анимации в обратном порядке при onmouseout. Анимация не должна быть плавной, то есть, спрайты должны переключаться покадрово. Что-то я намудрил, спрайты меняются неравномерно: <html> <head> <title></title> </head> <body> <script type="text/javascript" charset="utf-8"> var i=0; pos = new Array(); pos[0] = "url('_i/exp2.png') 0 0"; pos[1] = "url('_i/exp2.png') 64px 0"; pos[2] = "url('_i/exp2.png') 128px 0"; pos[3] = "url('_i/exp2.png') 192px 0"; pos[4] = "url('_i/exp2.png') 40px 0"; pos[5] = "url('_i/exp2.png') 50px 0"; function over() { i++ ; setTimeout("change_pos()", 500); // Тут задается в миллисекундах document.getElementById("about").style.background = pos[i]; } </script> </body> <a id="about" onMouseOver="over()" style="width:64px; height:64px; display:block; background: #ccc"> </a> Буду благодарен за помощь! |
Цитата:
Как вариант... <!DOCTYPE html> <html> <head> <!-- <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> var i=0; pos = new Array(); pos[0] = "0 0"; pos[1] = "64px 0"; pos[2] = "128px 0"; pos[3] = "192px 0"; pos[4] = "40px 0"; pos[5] = "50px 0"; function over() { setTimeout(change_pos, 100) } function change_pos() { document.getElementById("about").style.background = 'url("http://javascript.ru/forum/images/smilies/smile.gif") no-repeat '+ pos[i]+' #ccc'; i++ ; if (i==pos.length) return; setTimeout(change_pos, 100) } </script> </head> <body> <a id="about" onMouseOver="over()" style="width:200px; height:200px; display:block; background: #ccc"></a> </body> </html> |
Часовой пояс GMT +3, время: 02:01. |