Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2011, 16:29
Новичок на форуме
Отправить личное сообщение для alcotrip Посмотреть профиль Найти все сообщения от alcotrip
 
Регистрация: 04.10.2011
Сообщений: 1

Изменение позиции бэкграунда через массив
Всем привет! Я новичок, поэтому сильно не пинайте за тривиальные вопросы.

Суть проблемы такова. Я хочу реализовать анимацию слоя посредством перемещения через определенные промежутки времени бэкграунда, состоящего из спрайтов при наведении на него мышкой. Программа "максимум" - реализация той же анимации в обратном порядке при 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>


Буду благодарен за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2011, 16:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от alcotrip
Что-то я намудрил, спрайты меняются неравномерно:
Так они у тебя вообще не меняются в примере...

Как вариант...

<!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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение позиции элементов с помощью jquery не работает в IE6-8 ditasandditas Internet Explorer 0 15.08.2011 17:53
Изменение размеров картинки через скрипт SLV Общие вопросы Javascript 4 27.12.2010 11:40
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Скрыть/показать через с сохранением позиции Avel Mink Элементы интерфейса 9 24.10.2009 17:09