Показать сообщение отдельно
  #2 (permalink)  
Старый 08.11.2011, 13:10
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

нужно просто вынести
op -=0.05;
выше проверки на ноль

еще хорошо бы объявлять переменные в функции с помощью var, иначе они станут глобальными, а это плохо

вместо 'hide(\''+ob+'\', '+op+')' лучше нормально вызывать функцию

и вместо alert() использовать console.log(), - не будет прерываться выполнение программы

будет что-то вроде

function hide(ob, x) {
	var element = document.getElementById(ob),
		i = 0,
		op = parseFloat(x);

	op -= 0.05;

	if (op > i) {
		element.style.opacity = op;
		setTimeout(function () {
			hide(ob, op);
		}, 10);
	} else {
		element.style.opacity = 0;
	}
	console.log(op);
}


да по хорошему лучше и document.getElementById(ob) один раз делать, а не каждый раз
Ответить с цитированием