Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   анимация фона (https://javascript.ru/forum/dom-window/19387-animaciya-fona.html)

Sweet 03.08.2011 11:22

Цитата:

Сообщение от qwertyuiop
чтобы за пределы функции не лезли

Это слишком безобидно звучит. Вот пример:
<style>
div {
  position: absolute;
  height: 100px; width: 100px;
  background: green;
}

#test2{ top: 150px; }
</style>
<div id="test1"></div>
<div id="test2"></div>
<script>
function animate(id) {
	element=document.getElementById(id);
	start=new Date()
	setTimeout(function() {
		now=new Date() - start;
		progress=now / 100;
		result=1*progress;
		element.style.left=result+"px";
		setTimeout(arguments.callee,1);
	},10);
};

animate( "test1" );
setTimeout(function(){
  animate( "test2" ); // Второй вызов animate "выключит" первую анимацию
}, 3000);
</script>

kobezzza 03.08.2011 12:03

Цитата:

Сообщение от qwertyuiop (Сообщение 116975)
Sweet,
ок, ток зачем вар? может глупый вопрос, но всё же, я никогда не использую

Я настоятельно рекомендую всегда использовать var. Почему:
  1. Задача с var ставит переменную в соответствие с контекстом;
  2. В ИЕ могут быть баги при задаче без var;
  3. В ECMAScript 5 задача без var не работает;
  4. Такой способ задачи не очевиден и может наплодить кучу логических ошибок.

Андрей38 04.08.2011 16:48

<script>
var e=$('#divTwo')
$('#divClick1 ').live('click',function (){
e.show()
})
<script>

<script>

// тут нет var e=$('#divTwo')
$('#divClick2 ').live('click',function (){
e.hide()
})
<script>

Подскажите, пожайлуста, как сделать так,чтоб независимые друг от друга скрипты обращались к одной и той же VAR?
Такая необходимость возникает ОЧЕНЬ часто. Я читал, что бывают глобальные и локальные переменные .В наведенном примере - это локальная переменная?...Куда копать ? Может массив следует использовать для варов?

walik 04.08.2011 17:07

Если обе функции находятся в одном файле, то переменная e у тебя и так глобальная

Андрей38 04.08.2011 17:29

Цитата:

Сообщение от walik (Сообщение 117296)
Если обе функции находятся в одном файле, то переменная e у тебя и так глобальная

спасибо за эту часть ответа :thanks:


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