анимация фона
есть код, я доволен, все работает даже в ие, но мне всёравно кажется, что код кривой, код заставляет ехать фон влево, у меня есть его реализация с 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, время: 10:12. |