Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.07.2013, 20:26
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

???

block.onmouseover = function () {

if (block.busy) return;
block.busy = true;

animateProp({start:0, end: -20, prop:'marginTop', duration:500, elem:logo}, block.busy = false)


}
Ответить с цитированием
  #12 (permalink)  
Старый 06.07.2013, 20:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от hoax
animateProp
я незнаю как устроена ваша функция animateProp поэтому незнаю правильно или нет вы разместили параметр -- block.busy = false - возможно так function ()
{
block.busy = false
}

Сообщение от hoax
animateProp({start:0, end: -20, prop:'marginTop', duration:500, elem:logo},function ()
{
block.busy = false
}
)
Ответить с цитированием
  #13 (permalink)  
Старый 06.07.2013, 22:25
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

function animateProp(opts) {

var start = opts.start, end = opts.end, prop = opts.prop;

opts.step = function(progress) {
opts.elem.style[prop] = (end - start) * progress + start+'px'
}

return animate(opts);


}




var logo = document.getElementById('logo');

logo.onmouseover = function () {

if (logo.busy) return;
logo.busy = true;


animateProp({start:0, end: -20, prop:'marginTop', duration:500, elem:logo},function() {
logo.busy = false;
 })


}

logo.onmouseout = function () {

if (logo.busy) return;
logo.busy = true;


animateProp({start:-20, end: 0, prop:'marginTop', duration:500, elem:logo},function() {
logo.busy = false;
 })


}


работает только при onmouseover
Ответить с цитированием
  #14 (permalink)  
Старый 06.07.2013, 22:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

hoax,
если вы знаите где останавливается ваша анимация туда и ставте logo.busy = false -- в вашем коде я не вижу остановки анимации.
Ответить с цитированием
  #15 (permalink)  
Старый 07.07.2013, 11:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В jQuery это делается просто: $(el).stop().animate(..) и анимация срабатывает без всяких задержек, то есть не накапливается.
А тут какой-то велосипед animateProp, хз как тут такое сделать. Неясно зачем писать велосипедный код, который уже есть в jQuery и каждая собака умеет пользоваться этой либой.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отмена повторного выполнения события frant32 Events/DOM/Window 13 06.10.2012 12:25
Отмена действия события во время выполнения анимации gunsoy Общие вопросы Javascript 2 12.06.2012 13:27
Взаимодействие со скриптом на протяжении его выполнения Malgin AJAX и COMET 6 23.08.2010 22:39
Google Chrome перерисовка страницы во время выполнения скрипта Dekart Javascript под браузер 0 08.06.2010 08:35
разное время выполнения операции ropowek Events/DOM/Window 2 08.10.2008 13:27