Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #81 (permalink)  
Старый 26.12.2010, 10:18
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
Клик прекрасно сработает во время анимации.
Согласен, потому как есть пример (таймер тоже один):

<script type="text/javascript">
window.onload = function(){
    var elem = document.getElementsByTagName('div')[0], i = l = 120, 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, 15);
        })();
        return false;
    };
};
</script>

<div style="background: #0095FF; position: absolute; width: 30px; height: 30px; top: 120px"></div>


Сообщение от Kolyaj
При данном коде подъём и падение будут происходить одновременно.
это же jQuery, там все не так.

Последний раз редактировалось monolithed, 26.12.2010 в 10:25.
Ответить с цитированием
  #82 (permalink)  
Старый 26.12.2010, 10:23
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от monolithed
это же jQuery, там все не так.
дело не в "все не так". Это только Kolyaj заметил и вряд ли у нее был такой код - похоже не опечатку
Ответить с цитированием
  #83 (permalink)  
Старый 26.12.2010, 10:52
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от x-yuri
p.s. скажи честно, ты умеешь признавать свои ошибки?
ошибки я могу признавать-только где здесь мои ошибки. пересмотри первые страницы-ошибки всех подряд-причём у людей с бешеной кармой.
да вот в том то и момент что если браузер не выдаёт предложение закрыть-то событие он игнорирует. пример этого -предпоследний "рабочий "-фф через раз его критически закрывает. и вопрос как работает дураказащита в браузерах в подобных ситуациях-в пресечениях,незнаю наверное введу новый термин-но в коде изначальном появляются ещё отложенные пресечения-так вот вопрос обрабатываются все они или часть просто отбрасывается? не думаю что ктото сможет дать однозначный ответ. и не важно таймеры или события ещё работают а таймер опять запустился вызывающий их и в этот момент момент ещё добавляются события. взять допустим два таймера сработавшие одновременно и тянущие элемент в разные стороны(на большое расстояние). в какой последовательности они сработают? сработают ли вообщее? как они сработают? будет ли критическая ошибка? в каких браузерах будет одно действие в каких другое?
что имеет больший приоритет-выполняемое действие? действие по таймеру,возникающие событие? какой приоритет у них будет при постановке в очередь? какие возможно станут?-никто об этом не знает.
и если бы не было этого кода изначально ошибочного во всех своих строках(помимо ошибок алгоритма-он не соответствует её заданию ну никак-это я о моментальном падении при клике)-эта тема здесь бы никогда не возникла. могу поспорить что подобная ситуация не рассматривается не в одной книге и не в одном учебном заведении.
рассмотрение этого на уровне рассмотрения пишущих браузеры-ситуация продумывания дуракозащиты
Ответить с цитированием
  #84 (permalink)  
Старый 26.12.2010, 10:54
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от x-yuri
Это только Kolyaj заметил и вряд ли у нее был такой код - похоже не опечатку
именно такой код у неё и был. ну даже если представить что вместо 40000 у неё 4000. всё равно таймер "должен" запуститься 5 раз пока сработают 2 анимейта
исправил) -забыл слово должен

Последний раз редактировалось dmitriymar, 26.12.2010 в 11:06.
Ответить с цитированием
  #85 (permalink)  
Старый 26.12.2010, 10:59
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

dmitriymar
Мне кажется, что если задать эти вопросы Дмитрию Сошникову, то он с удовольствием на них ответит.
Ответить с цитированием
  #86 (permalink)  
Старый 26.12.2010, 11:02
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от monolithed
Согласен, потому как есть пример (таймер тоже один):
да он работает и срабатывает-но ты ведь каждые 15 милисекунд сдвигаешь контейнер на 1 точку. код у тебя выполняется быстрее 15 милисекунд. и появляется окно когда не выполняется никакой скрипт -окно для обработки он клик. клик на мыши(изо физиологии длится ведь дольше 15 милесекунд)-нет у нас таких скоростей движения пальцами.
за твой код я ничего не говорю-в твоём коде (условно провожу аналогии) реализованы "прерывания" на опрос и обработку событий-тем что(опять скажу цикл) движения работает меньший промежуток времени чем промежуток времени через какой таймер его опять вызовет. но ведь он ничего общего не имеет с той ситуацией что рассматривается)

Последний раз редактировалось dmitriymar, 26.12.2010 в 11:07.
Ответить с цитированием
  #87 (permalink)  
Старый 26.12.2010, 11:26
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от monolithed
это же jQuery, там все не так.
да чего там не так? то что обаратывачивает скрипт в свои операторы-так от этого он не быстрее выполняется а медленнее. условно его можно сравнить с языком высокого уровня а скрип с языком низкого. уровня.всёравно что сравнивать бейсик с ассемблером-ассемблер сложнее быстрее но в конечном итоге даёт больше возможностей и позволяет сделать то что бейсик никогда не сможет.хотя на первый взгляд так бедно выглядит по сравнению с бейсиком....
Ответить с цитированием
  #88 (permalink)  
Старый 26.12.2010, 11:53
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от dmitriymar
ошибки я могу признавать-только где здесь мои ошибки. пересмотри первые страницы-ошибки всех подряд-причём у людей с бешеной кармой.
хорошо, давай попробуем...

Сообщение от vyazovetskova
function goes_up(){
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение
};
setInterval(goes_up, 100);//бесконечный подъем и падение
Сообщение от exec
(function () {
var callee = arguments.callee;
$("#id").animate({
top: "+=180px"
}, 3000, function () {
$(this).animate({
top: "-=180px"
}, 3000, callee);
});
})();
Сообщение от dmitriymar
ну и не упадёт никогда по клику. пока цикл не закончится опросов и других любых действий не будет
ты чей цикл имел в виду?
Ответить с цитированием
  #89 (permalink)  
Старый 26.12.2010, 11:59
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

function goes_up(){
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение
};
setInterval(goes_up, 100);
Ответить с цитированием
  #90 (permalink)  
Старый 26.12.2010, 12:02
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от exec
exec exec на форуме
Профессор
Карма: +843
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
Регистрация: 21.01.2010
Сообщений: 966

Цитата выделенного
dmitriymar, на

показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки
01 <div id='foo' style='width: 50px; height: 50px; position: absolute; background: #555555'>
02 </div>
03
04 <script type='text/javascript'>
05 window.onload = function () {
06 function delta(progress) {
07 function d(progress) {
08 for(var a = 0, b = 1, result; 1; a += b, b /= 2) {
09 if (progress >= (7 - 4 * a) / 11)
10 return -Math.pow((11 - 6 * a - 11 * progress) / 4, 2) + Math.pow(b, 2);
11 }
12 }
13 return 1 - d(1 - progress);
14 }
15
16 document.getElementById("foo").onclick = function () {
17 var E = this;
18 this.onclick = new Function;
19 (function (toTop, from, to) {
20 var start = new Date().getTime(),
21 callee = arguments.callee;
22 setTimeout(function () {
23 var progress = (new Date().getTime() - start) / 1000;
24 E.style.top = ((to - from) * (toTop ? progress : delta(progress)) + from) + "px";
25 if (progress < 1)
26 setTimeout(arguments.callee, 13);
27 else
28 callee(!toTop, toTop ? 0 : 180, toTop ? 180 : 0);
29 }, 13);
30 })(false, 0, 180);
31 };
32 };
33 </script>


Просто интересно узнать, что опять не так.
это по поводу второго кода что ты привёл -я его тогда вообще не рассматривал-я рассматривал код человека выложевшего вопрос.
но по поводу кода привёдённого им-вторым постом в этом топике-привожу код какой он положил со всеми доработками-и посмотри коменты к нему.так что думаю что и первый код какой он привёл-не соответветсвует задаваемому вопросу-точнее на нём не возможно сделаить реализацию того что она хотела
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с анимацией IE 8 MichaelMV jQuery 0 03.11.2010 18:21
Помогите оптимизировать скрипт смены изображений с анимацией Khmelevsky Элементы интерфейса 5 06.03.2010 19:02
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47
проблемы с Post Phoenix (X)HTML/CSS 11 31.10.2008 04:25