анимация фона
есть код, я доволен, все работает даже в ие, но мне всёравно кажется, что код кривой, код заставляет ехать фон влево, у меня есть его реализация с jQwery и mootools, но она тормозит и много весит, это намного проще, но хотел бы узнать, что тут лишнего, и что лучше добавить:
<div onclick="animate('ex1', function(p) {return p;})" id="ex1"> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br /> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br /> </div> function animate(id, delta, dur) { element = document.getElementById(id); from = 0; to = 1; duration = dur || 100; start = new Date().getTime(); setTimeout(function() { var now = (new Date().getTime()) - start; var progress = now / duration; var result = (to - from)*delta(progress)+from; element.style.backgroundPosition = "-"+result+"mm 0mm"; //element.innerHTML = result; if (true) setTimeout(arguments.callee, 1); }, 10); } |
function animate(id, delta) { element = document.getElementById(id); from = 0; to = 1; duration = 100; start = new Date().getTime(); setTimeout(function() { var now = (new Date().getTime()) - start; var progress = now / duration; var result = (to - from)*delta(progress)+from; element.style.backgroundPosition = "-"+result+"mm 0mm"; //element.innerHTML = result; setTimeout(arguments.callee, 1); }, 10); } убрал лишнее |
Не то, что бы лишнее, просто не понимаю, зачем так сложно:
(new Date().getTime()) - start;??? Я бы написал так: new Date - start;А вот что element, from, to и т.д. - глобальные переменные, - плохо! Будет конфликт, если запустить несколько функций. |
Sweet,
function animate(id) { element = document.getElementById(id); from = 0; to = -1; duration = 100; start = new Date().getTime(); setTimeout(function() { now = new Date() - start; progress = now / duration; result = (to - from)*progress+from; element.style.backgroundPosition = result+"mm 0mm"; //element.innerHTML = result; setTimeout(arguments.callee, 1); }, 10); } пока это получилось, я думаю переменные убрать, прописать в формеле все, что можно |
Sweet,
function animate(id) { element = document.getElementById(id); duration = 100; start = new Date().getTime(); setTimeout(function() { now = new Date() - start; progress = now / duration; result = -1*progress; element.style.backgroundPosition = result+"mm 0mm"; //element.innerHTML = result; setTimeout(arguments.callee, 1); }, 10); } получилось так |
function animate(id) { element = document.getElementById(id); duration = 100; start = new Date() setTimeout(function() { now = new Date() - start; progress = now / duration; result = -1*progress; element.style.backgroundPosition = result+"mm 0mm"; //element.innerHTML = result; setTimeout(arguments.callee, 1); }, 10); } |
function animate(id) { element=document.getElementById(id); start=new Date() setTimeout(function() { now=new Date() - start; progress=now / 100; result=-1*progress; element.style.backgroundPosition=result+"mm 0mm"; setTimeout(arguments.callee,1); },10); } |
qwertyuiop,
качественно флудишь! Ты не видишь кнопочку "Ред." в правом нижнем углу сообщений? Рекомендую пользоваться ей. И используй var! |
Sweet,
ок, ток зачем вар? может глупый вопрос, но всё же, я никогда не использую |
Sweet,
понял, чтобы за пределы функции не лезли |
Цитата:
<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> |
Цитата:
|
<script>
var e=$('#divTwo') $('#divClick1 ').live('click',function (){ e.show() }) <script> <script> // тут нет var e=$('#divTwo') $('#divClick2 ').live('click',function (){ e.hide() }) <script> Подскажите, пожайлуста, как сделать так,чтоб независимые друг от друга скрипты обращались к одной и той же VAR? Такая необходимость возникает ОЧЕНЬ часто. Я читал, что бывают глобальные и локальные переменные .В наведенном примере - это локальная переменная?...Куда копать ? Может массив следует использовать для варов? |
Если обе функции находятся в одном файле, то переменная e у тебя и так глобальная
|
Цитата:
|
Часовой пояс GMT +3, время: 12:26. |