Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вертикальная анимация спрайта (https://javascript.ru/forum/dom-window/69670-vertikalnaya-animaciya-sprajjta.html)

andamurobl 11.07.2017 10:50

Вертикальная анимация спрайта
 
Добрый день! Нашел на старом битриксе код который при событии hover листает бг блока. БГ из себя представляет вертикальный спрайт из 16 кадров. У каждого кадра свое css правило позиционирования бг. Если я конечно все правильно понимаю.

$("#tick").hover(function () { 

var on=0;
var i=1;
if($("#tick").hasClass("tsl_1"))
t=setInterval( function() 
	{
	if(on==0)
	{
	$("#tick").removeClass("tsl_"+i); 
	if(i==16) { on=1; $("#tick").addClass("tsl_1"); clearInterval(t);}
	else{
	i++;
	$("#tick").addClass("tsl_"+i); }
	}
	}
	, 90);
   })
</script>


Есть необходимость поменять код чтобы он работал не по событию hover а при загрузке страницы с интервалом. Изучал раздел setInterval и setTimeout, думаю что суть в них, но применить их чтобы код работал, так и не удалось. Если кому не жалко времени - надеюсь на помощь.

Dilettante_Pro 11.07.2017 11:44

andamurobl,
Попробуйте заменить
$("#tick").hover(function ()
на
$(window).load(function ()

andamurobl 11.07.2017 12:08

Верно! Все заработало. Добавил setIterval к функции и получил интервал в 6 секунд. Рабочий код:
<script type="text/javascript">

$(window).load(
	setInterval (function () { 
		var on=0;
		var i=1;
		if($("#tick").hasClass("tsl_1"))
		t=setInterval( function() 
		{
		if(on==0)
		{
		$("#tick").removeClass("tsl_"+i); 
		if(i==16) { on=1; $("#tick").addClass("tsl_1"); clearInterval(t);}
		else{
		i++;
		$("#tick").addClass("tsl_"+i); }
		}
		}
		, 90);
    },6000))

</script>


ПС Спасибо Dilettante_Pro за потраченное время.


Часовой пояс GMT +3, время: 09:10.