Javascript.RU

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

Анимация. Возникла проблема с Анимацией в JS(
Вот, начал писать функцию для анимации..
var anim_ = {};
function anim(e){
  return {
	'go' : function(param, time, z){
	  if(e){
	    anim_[e] = true;
	    var tm = new Date().getTime();
	    setTimeout(function(){
		var pr = ((new Date().getTime()) - tm) / time;
		  z(e,pr);
		  if(pr < 1 && anim_[e]){
		    setTimeout(arguments.callee, 50);
		  };
	    }, 50);
	  };
	  return this;
	},
	'stop' : function(){
	  delete anim_[e];
	  return this;
	}
  };
};

Пример использования:
Код:
<div id="lo">text</div>
<script>
var pb = document.getElementById('lo');
pb.onmouseover = function(){
  anim(this).stop().go([12, 15], 500, function(e, l){
    e.style.fontSize = 15 - 12 * l + 12 +'px';
  });
};
pb.onmouseout = function(){
  anim(this).stop().go([15, 12], 500, function(e, l){
    e.style.fontSize = 12 - 15 * l + 15+'px';
  });
};
</script>
Проблема в том, чтобы сделать остановку анимации.. при отведении курсора, если элемент ещё не до конца "анимировался", чтобы он анимированно начал возвращаться в предыдущее состояние..
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2013, 00:33
Новичок на форуме
Отправить личное сообщение для stanislav96 Посмотреть профиль Найти все сообщения от stanislav96
 
Регистрация: 16.04.2012
Сообщений: 6

UP
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2013, 18:40
Новичок на форуме
Отправить личное сообщение для stanislav96 Посмотреть профиль Найти все сообщения от stanislav96
 
Регистрация: 16.04.2012
Сообщений: 6

up-up
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2013, 22:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

че за z ?
Ты должен по таймеру анимировать все элементы, которые нужно в данный момент анимировать. Если все проанимировал - больше не запускаешь таймер до следующей анимации. И да, вместо setInterval нужно использовать requestAnimationFrame
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2013, 08:54
Новичок на форуме
Отправить личное сообщение для stanislav96 Посмотреть профиль Найти все сообщения от stanislav96
 
Регистрация: 16.04.2012
Сообщений: 6

а можно пример?
Ответить с цитированием
  #6 (permalink)  
Старый 30.03.2013, 09:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

var requestAnimationFrame = window.requestAnimationFrame ||
    window.mozRequestAnimationFrame ||  
    window.webkitRequestAnimationFrame ||
    window.msRequestAnimationFrame ||
    window.oRequestAnimationFrame ||
    function(callback) {
        setTimeout(callback, 1000/60);
    };
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка внешнего JS файла - проблема в Chrome Freddis Opera, Safari и др. 3 26.07.2011 21:48
проблема с OpenApi Auth (fb, vk), js Maximor17 AJAX и COMET 0 08.07.2011 17:50
проблема с OpenApi Auth (fb, vk), js Maximor17 Events/DOM/Window 0 08.07.2011 17:49
Js + Ie7 проблема onuvidelsolnce Internet Explorer 4 28.03.2011 20:21
Не запускается скрипт JS vandy3 AJAX и COMET 3 07.12.2010 09:43