09.12.2010, 19:52
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
monolithed,
всё равно не роняется)))
|
|
09.12.2010, 19:56
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от vyazovetskova
|
Здравствуйте! Я в js новичок, та ктчо буду очень благодарна, если кто-то мне поможет. У меня есть следующая задачка: Есть картинка, которая положена в div. Этот div в бесконечном цикле сначала поднимается вверх на сотню пикселей, потом 'падает ' вниз на прежнее место. По клику на этот див, где бы он ни был, он должен 'упасть', т.е. вернуться в исходную позицию.
Бесконечное 'карабканье и падение' я сделала так:
|
то что человек просил)
|
|
09.12.2010, 20:16
|
Профессор
|
|
Регистрация: 21.01.2010
Сообщений: 1,022
|
|
dmitriymar, на
<div id='foo' style='width: 50px; height: 50px; position: absolute; background: #555555'>
</div>
<script type='text/javascript'>
window.onload = function () {
function delta(progress) {
function d(progress) {
for(var a = 0, b = 1, result; 1; a += b, b /= 2) {
if (progress >= (7 - 4 * a) / 11)
return -Math.pow((11 - 6 * a - 11 * progress) / 4, 2) + Math.pow(b, 2);
}
}
return 1 - d(1 - progress);
}
document.getElementById("foo").onclick = function () {
var E = this;
this.onclick = new Function;
(function (toTop, from, to) {
var start = new Date().getTime(),
callee = arguments.callee;
setTimeout(function () {
var progress = (new Date().getTime() - start) / 1000;
E.style.top = ((to - from) * (toTop ? progress : delta(progress)) + from) + "px";
if (progress < 1)
setTimeout(arguments.callee, 13);
else
callee(!toTop, toTop ? 0 : 180, toTop ? 180 : 0);
}, 13);
})(false, 0, 180);
};
};
</script>
Просто интересно узнать, что опять не так.
|
|
09.12.2010, 20:22
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
exec,
а сам что не видишь что он клик не реаигирует а принудительно падает с верхней точки .по крайней мере в ff да и в ie-так что по ходу наверное во всех.задача ведь человеком чётко сформулирована)))не переживай уже разобрались с человеком задавшим этот вопрос в личке.
Последний раз редактировалось dmitriymar, 09.12.2010 в 20:26.
|
|
09.12.2010, 20:40
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
exec, у меня после пары кликов по кубику firefox вырубило наглухо с сообщением о критической ошибке)))
dmitriymar special for you
<script type="text/javascript">
window.onload = function(){
var elem = document.getElementsByTagName('div')[0], i = l = 200, j = k = 0;
elem.onclick = function(){
if(k!=0) {
i = -l;
return false;
}
(function(){
if(i>=k){
elem.style.top = --i +'px'; j = i; k = 1;
}
else {
elem.style.top = ++j +'px';
if(j++>=l) i = l;
}
window.setTimeout(arguments.callee, 10);
})();
return false;
};
};
</script>
<div style="background: #0095FF; position: absolute; width: 50px; height: 50px; top: 200px"></div>
Сообщение от dmitriymar
|
exec, не переживай
|
по поводу?
Сообщение от dmitriymar
|
уже разобрались с человеком задавшим этот вопрос в личке.
|
а смысл?
Последний раз редактировалось monolithed, 09.12.2010 в 21:02.
|
|
09.12.2010, 20:53
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
monolithed,
от спасибо-аж на сек показалось что у меня сегодня д.р. просто у нас была полемика что такое анимация и что такое зацикленный браузер а что повисший. у меня тож испод того кода ff лёг. ну а проблема была решена несколько часов назад-она всё правильно делала-только нужно было прерываться на опросы чаще и всё(в смысле функции работы по таймеру делать короче и вызывать их чаще чтобы инфу с мыши считывать)
|
|
09.12.2010, 21:00
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от monolithed
|
уже разобрались с человеком задавшим этот вопрос в личке.
|
смысл в том что тут была описанна проблемма почему у неё не срабатывало-но начались заскоки -чтобы показать свой ум вот и ушел с ней в личку. хоть она и недавно скрипт изучает но понимание есть и желание разобраться в проблеме объективно-разобраться с первопричиной
|
|
09.12.2010, 21:04
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
monolithed,
видеш ведь мою карму?интересно к полуночи к -1000 догоню?)))
|
|
10.12.2010, 19:41
|
Новичок на форуме
|
|
Регистрация: 08.12.2010
Сообщений: 9
|
|
|
|
10.12.2010, 22:03
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от vyazovetskova
|
Дело в том, что в js нет паралельности. Казалось бы, такую задачу можно решить использовав объекты. Но в js объектов как таковых нет. Объектами называются обычные хэши.
|
Хочется спросить, вы хоть одну книжку по JavaScript в руках держали?
И если вы уж решили кому-то дать масстер-классс, то убедитесь хотя бы сами, что ваш пример работает, я уж не говорю про элементарную демку и хотя бы намек на то что это jQuery (ведь тем кто знает что это - пройдут стороной, но вы рассчитываете на противоположную аудиторию).
PS: И был ли смысл вообще делать на jQuery, если тоже самое только рабочее и с меньшим количеством кода можно сделать на чистом JavaScript?
Последний раз редактировалось monolithed, 10.12.2010 в 22:07.
|
|
|
|