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

Анимация в IE (проблема)
Мне надо было написать несложный JS анимацию, вот собственно и она:

function Start_animation() {
	 
	  var change = false;
	  var index_img = 0;	  
	  var class_this = this;
	  
	  this.images = function() { return new Array ('header', 'header_2', 'header_3'); }   
	  
	  this.animate = function() {		 

		   change = (change) ? (false) : (true);
		   
		   $('#header .header_img img').each(function (index, el) {   				
				 
			     if ($(el).closest('.header_img').css('opacity') == 0) $(el).attr('src', '/skin/img/BG/' + get_next() + '.png');

			   });
		  		 
		   $('#header #first_h').animate({opacity: (change) ? (0) : (1)}, 1500);
		   $('#header #second_h').animate({opacity: (change) ? (1) : (0)}, 1500);
		   		   
 
		   
		   setInterval(this.animate, 5000); 
		   
		  } 
		  
		  
	   var get_next = function() {
		   
		   index_img++;
		   
		   index_img = ((index_img + 1) <= class_this.images().length) ? (index_img) : (0);
		   
		   return class_this.images()[index_img]; 
		   
	   }
		  
	  
  }
  
  var Top_animation = new Start_animation();
  
  Top_animation.animate();

*** В массиве хранятся названия картинок, чтоб время на понимание сией ерунды не тратили.

Все отлично и прекрасно, но он не работает в IE. Дебажил - все норм src картинок меняется (правда скрипт вроде как иногда в IE останавливается ..), но animate не работает вообще.

Картинки в PNG-24, возможно связано с этим.

И дебагер IE ругался на: setInterval(this.animate, 5000); , вроде как невалидный аргумент .. Переправлял на
setInterval(function() { class_this.animate() }, 5000);, везде все работает, конечно же кроме IE

Очень прошу помочь знающий народ.

Заранее благодарен!!!

Последний раз редактировалось Andrey_rtv, 18.08.2012 в 03:50.
Ответить с цитированием