Цитата:
Может в этом проблема: Цитата:
Если так, то события действительно никуда не пропадают, они происходят (здесь многопоточность) и их обработчики добавляются в очередь (а здесь уже один поток). Подробней здесь: http://javascript.ru/tutorial/events/timing . |
Цитата:
у неё по сути дела 3 таймера. 2 из них регуляторы скорости. 3 й запуск этих вниз-верх по таймеру.+обработка события так предскажи как он будет срабатывать на разных компах с разной производительностью? скажи что имеет преимущество-движение верх,движение вниз,таймер,обработка события? в какой последовательности они построятся в очередь? и будут ли в очереди элементы до каких очередь может никогда не дойти? то что анимейт не прервётся на он клике-пока он полностью не выполниться-это ясно-хотя судя по началу топика страницам так по 3 м многие считают что прервётся... |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
не забывай ещё о таймере запускающем 2 анимейта у каких есть ещё свои таймеры рег. скорость-хотя он может быть и по типу пустого цикла-что ещё хуже для этой ситуации. я говорю о случае когда ещё работает анимейт +сработал таймер опять запускающий анимейт+онклик... попадёт в очередь ,не попадёт,попадёт но никогда не сработает-предскажешь? я не могу-могу сказать только одно что в этом случае какоето действие может быть никогда не выполнено(это зависит от параметра таймера ,длинны в машинных циклах-надеюсь термин этот объяснять не нужно?- действия выполняемого по таймеру и производительности компа)-и скорее всего это будет онклик |
и ещё по поводу твоего поста-ей нужно было выполнение сразу падения-а не отработка и потом по очереди падение.
|
чтобы увидеть что событие он клик у неё никогда не сработает-достаточно посмотреть на сумму двух таймеров скорости в анимайтах и на таймер вызывающий парное исполнение анимейтов
function goes_up(){ $('#idl').animate({top:'-=180'},40000);//подъем $('#id').animate({top:'+=180'},1000);//падение }; setInterval(goes_up, 1000);//бесконечный подъем и падение здесь видно что анимейты не закончаться а запуск их по новой уже начнётся.40000 милисикунд будет выполняться 1 анимейт+1000 второй. а вот по новой запустится через 1000 милисекунд после запуска итого- 1000милисекунд-41000 милисекунд=-40000 милисекунд при каждом запуске. и вопрос очень большой становится ли в очередь он клик или не становится-и если становится то выполнится ли он вообще Считаю эту тему закрытой.Не думаю что кто либо из моих опонентов-влепивших мне минус 300 с хвостом за этот топик найдёт что мне возразить:yes: |
Цитата:
Цитата:
|
Kolyaj,
и не прекращаются попытки возразить-хоть и не в тему абсолютно... смотри не участок кода а весь $('#idl').animate({top:'-=180'},40000);//подъем $('#id').animate({top:'+=180'},1000);//падение }; setInterval(goes_up, 1000); каким оброазом одновременно? скрипт однопотоковый-всё по очереди идёт и как эта очередь выстроится?как то что события с таймером не выстраиваются по времени(предидущий пост) как он клик впишется? или ты знаешь как комп будет вести себя при таких глюках в логике-тянущих на фатальную ошибку для браузера? Цитата:
|
по-моему, все ждут, что я что-то скажу...
![]() думаю, я все же понял, что ты хотел сказать dmitriymar дело в том, что в jQuery две анимации на одном элементе по умолчанию запускаются в очереди: т.е. вторая начинается только после того, как закончиться первая: <!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> </head> <body> <div style=" position: absolute; width: 100px; height: 100px; background: red; "></div> <script type="text/javascript"> $('div').animate({'left': '500px'}).animate({'left': '0px'}); </script> </body> </html> потом, во время animate могут обрабатываться клики: <!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> </head> <body> <div style=" position: absolute; width: 100px; height: 100px; background: red; "></div> <script type="text/javascript"> $('div').animate({'left': '500px'}, 5000).click(function(){ $(this).stop() }); </script> </body> </html> animate внутри (упрощенно) работает так: $.fn.animate = function(){ <добавить действие в очередь> setTimeount(function(){ $(<elements>).<property> += ...; }, duration); } итого: у нее в первом сообщении 2 таймера - animate'овский (с очередью действий) и свой собственный. Каждый последующий вызов animate просто добавляет в очередь еще одно действие, сразу оно не запускается кроме того, ты говорил про случай, когда скрипт не успевает обрабатывать события. В таких случаях ОС говорит, что приложение не отвечает, а браузер, предлагает остановить скрипт. Раз браузер умудряется предложить остановить скрипт, значит он с операционной системой этот вопрос как-то решает, значит он обрабатывает какие-то события. Только ты сам не знаешь, как именно ведет себя ОС и браузер в таких случаях, как они пытаются предотвратить такие проблемы. Ты сам об этом говоришь. ты сказал, что я перекручиваю твои слова? Нет, я специально ничего такого не делал. Повторюсь: ты очень невнятно объясняешь. И не то чтобы я хочу тебя обидеть... просто констатирую факт, или я не прав? Так что, в крайнем случае - я неправильно тебя понял. А вот иронизировал... да, было дело... p.s. скажи честно, ты умеешь признавать свои ошибки? ;) |
Часовой пояс GMT +3, время: 21:45. |