Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с анимацией (https://javascript.ru/forum/misc/13673-problemy-s-animaciejj.html)

dmitriymar 18.12.2010 15:53

вах блеснул-так блеснул.за такой блеск -ну если честно обычно избиваю конкретно-называя вещи своими именами -пизжу т аких как ты охуенно. особенно там где мои слова перекручивают. ты хочешь сказать что ты всегда будешь знать как отреагирует браузер на два одновременно возникших события?-об этом я тебе говорил-а тот говно код что ты здесь привёл(и я тебе об этом говорил не один раз)-имитирует одновременно одно событие. в вопросе заданном в начале поста-шло именно пересечение событий. напомни город в каком ты-возможно буду там проездом. и мне будет приятно-ну и тебе полезно несколько месяцев в больнице отдохнуть.
тебе было ясно сказано что ещё нужно событие запуску по таймеру-какое ты проигнорировал и гнёшь своё. поэтому повторю-прежде чем что то писать-НАУЧИСЬ СНАЧАЛА ЧИТАТЬ ТО ЧТО тебе ПИШУТ,А НЕ ЧИТАТЬ ТАК КАК ТЕБЕ ЭТО ХОЧЕТСЯ ПРОЧИТАТЬ!!!!

dmitriymar 18.12.2010 16:00

и ещё одно
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение
что это такое как не функция циклического сдвига вызываемая по таймеру.что то другое? так нет-функция какая обращаеться к подпрограмме в какой находится цикл обеспечивающий движение.и скажу одно-людям нахватавшихся знаний в одной области -но не знающим основ-точнее трактующим их как хотят -стоит забыть о знаниях своих и начать с основ

x-yuri 18.12.2010 18:34

Цитата:

Сообщение от dmitriymar
ты хочешь сказать что ты всегда будешь знать как отреагирует браузер на два одновременно возникших события?-об этом я тебе говорил

Вот твое объяснение, что надо тестировать:
Цитата:

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

а потом была фраза:
Цитата:

Сообщение от dmitriymar
у меня такая чуйка что цикл запускался нажатием на тот элемент.

это здесь ты мне сказал про "два одновременных события"? Ну вот код с разными событиями на двух разных элементах. Результат тот же.
<!DOCTYPE HTML>
<html>
  <body>
 
<div id="div" style="
    width: 100px;
    height: 100px;
    background: red;
"></div>

<a href="#" id="go">go</a>

<a href="#" id="show-clicks">show clicks</a>
 
<script type="text/javascript">
var clicks = 0;

function $(id){ return document.getElementById(id); }

$('div').onclick = function(){
    clicks++;
}

$('go').onmousedown = function(){
    for( var i=0; i<1500000000; i++ );   // !!! количество итераций зависит от CPU
    $('div').innerHTML += 'done';
}

$('show-clicks').onclick = function(){
    alert( clicks );
}
</script>
 
  </body>
</html>


Цитата:

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

ты для начала сумей объяснить, как оно работает. А там и тест не проблема будет написать ;) А то от тебя слышно только "я знаю как оно должно быть, но не знаю почему"...

Цитата:

Сообщение от dmitriymar
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение
что это такое как не функция циклического сдвига вызываемая по таймеру.что то другое? так нет-функция какая обращаеться к подпрограмме в какой находится цикл обеспечивающий движение.

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

x-yuri 18.12.2010 18:44

ну вот я даже сделал как ты сказал. Ни один из 28 кликов не пропали
<!DOCTYPE HTML>
<html>
  <body>
 
<div id="div" style="
    width: 100px;
    height: 100px;
    background: red;
"></div>

<a href="#" id="go">go</a>

<a href="#" id="show-clicks">show clicks</a>
 
<script type="text/javascript">

var clicks = 0;
var n = 3;
var delay = 1000;

$('div').onclick = function(){
    clicks++;
}

$('go').onclick = function(){
    setTimeout( loop, delay );
};

function loop(){
    if( n <= 0 ){
        $('div').innerHTML += 'done';
        return;
    }
    for( var i=0; i<1500000000; i++ );   // !!! количество итераций зависит от CPU
    n--;
    setTimeout( loop, delay );
}

$('show-clicks').onclick = function(){
    alert( clicks );
}

function $(id){ return document.getElementById(id); }

</script>
 
  </body>
</html>

dmitriymar 18.12.2010 19:11

Цитата:

Сообщение от x-yuri
чтобы не спорить в пустую. запусти какойнибудь цикл по таймеру длительный. сделай обработчик события он клик-чтобы считал колво нажатых раз. запусти несколько раз это дело по таймеру. ну и выведи по окончаню количество нажатий.

вот что я сказал
а вот что ты сделал-
Цитата:

Сообщение от x-yuri
1 <!DOCTYPE HTML>
02 <html>
03 <body>
04
05 <div id="div" style="
06 width: 100px;
07 height: 100px;
08 background: red;
09 "></div>
10
11 <script type="text/javascript">
12 function $(id){ return document.getElementById(id); }
13 $('div').onclick = function(){
14 $('div').onclick = function(){
15 $('div').innerHTML += '.';
16 }
17 for( var i=0; i<1500000000; i++ ); // !!! количество итераций зависит от CPU
18 $('div').innerHTML += 'o';
19 }
20 </script>
21
22 </body>
23 </html>

где здесь событие таймер? не перекручивай мои слова и научись читать то что пишут ,а не то чего тебе хочется прочитать:-/

x-yuri 18.12.2010 19:47

вот что ты сказал:
Цитата:

Сообщение от x-yuri
ты тестируешь обрабатываються ли опросы преферии во время выполнения кода скрипта-не важно какого

именно это я тестировал. Объяснить, почему надо тестировать не так, ты не в состояния. Да, в общем-то, у тебя в целом с объяснением проблемы, надо брать букварь и начинать с основ...

а потом я написал тест с твоих слов. Который опять же показал, что ты несешь чушь

вывод: может быть ты что-нибудь и знаешь. Но так как ты сам не понимаешь, о чем говоришь, либо не можешь это объяснить - толку от этого никакого

dmitriymar 18.12.2010 19:53

бля-ты сам поставил в посте что я написал. и ты привёл код как ты это тестил. так ответь мне на один вопрос где в твоём коде вызов по таймеру функции несколько раз-упор на это я сделал-повторив про таймер два раза в двух строках.
а если при этом ещё постиш 2 противоречащие действия на функцию по таймеру и обработчик по клику-то в конце вобще ниезвестно что будет на выходе. что здесь ещё можно или нужно объяснять?блин займи 5 монет у кого нибудь и ВЫКУПИ АЗБУКУ НАЗАД!!!блин зоопарк один птица другой пень...

x-yuri 18.12.2010 21:06

вот что ты написал:
Цитата:

Сообщение от dmitriymar
ты тестируешь обрабатываються ли опросы преферии во время выполнения кода скрипта-не важно какого

вот код который это тестирует (таймер для этого не нужен):
<!DOCTYPE HTML>
<html>
  <body>
 
<div id="div" style="
    width: 100px;
    height: 100px;
    background: red;
"></div>
 
<script type="text/javascript">
function $(id){ return document.getElementById(id); }
$('div').onclick = function(){
    $('div').onclick = function(){
        $('div').innerHTML += '.';
    }
    for( var i=0; i<1500000000; i++ );   // !!! количество итераций зависит от CPU
    $('div').innerHTML += 'o';
}
</script>
 
  </body>
</html>

---
вот как ты представляешь себе тест:
Цитата:

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

вот моя реализация:
<!DOCTYPE HTML>
<html>
  <body>
 
<div id="div" style="
    width: 100px;
    height: 100px;
    background: red;
"></div>

<a href="#" id="go">go</a>

<a href="#" id="show-clicks">show clicks</a>
 
<script type="text/javascript">

var clicks = 0;
var n = 3;
var delay = 1000;

$('div').onclick = function(){
    clicks++;
}

$('go').onclick = function(){
    setTimeout( loop, delay );
};

function loop(){
    if( n <= 0 ){
        $('div').innerHTML += 'done';
        return;
    }
    for( var i=0; i<1500000000; i++ );   // !!! количество итераций зависит от CPU
    n--;
    setTimeout( loop, delay );
}

$('show-clicks').onclick = function(){
    alert( clicks );
}

function $(id){ return document.getElementById(id); }

</script>
 
  </body>
</html>

что этот код тестирует - хз. Но в любом случае, он работает не так как ты говоришь

dmitriymar 18.12.2010 21:13

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

Kolyaj 18.12.2010 21:29

dmitriymar,
покажи уже свой код, подтверждающий твои слова. Что ж мы мучаемся-то в незнании.


Часовой пояс GMT +3, время: 15:57.