| 
	| 
	
	| 
		
	| 
			
			 
			
				26.12.2010, 10:18
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 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.
 |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 10:23
			
			
			
		 |  
	| 
		
			|  | 
       |  | 
					Регистрация: 27.12.2008 
						Сообщений: 4,201
					 
		
 |  |  
	| 
	
 
	| Сообщение от monolithed |  
	| это же jQuery, там все не так. |  
	
 дело не в "все не так". Это только Kolyaj  заметил и вряд ли у нее был такой код - похоже не опечатку |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 10:52
			
			
			
		 |  
	| 
		
			
			| х.з     |  | 
					Регистрация: 21.11.2010 
						Сообщений: 4,588
					 
		
 |  |  
	| 
	
 
	| Сообщение от x-yuri |  
	| p.s. скажи честно, ты умеешь признавать свои ошибки? |  
	
 ошибки я могу признавать-только где здесь мои ошибки. пересмотри первые страницы-ошибки всех подряд-причём у людей с бешеной кармой. 
да вот в том то и момент что если браузер не выдаёт предложение закрыть-то событие он игнорирует. пример этого -предпоследний "рабочий "-фф через раз его критически закрывает. и вопрос как работает дураказащита в браузерах в подобных ситуациях-в пресечениях,незнаю наверное введу новый термин-но в коде изначальном появляются ещё отложенные пресечения-так вот вопрос обрабатываются все они или часть просто отбрасывается? не думаю что ктото сможет дать однозначный ответ. и не важно таймеры или события ещё работают а таймер опять запустился вызывающий их и в этот момент момент ещё добавляются события. взять допустим два таймера сработавшие одновременно и тянущие элемент в разные стороны(на большое расстояние). в какой последовательности  они сработают? сработают ли вообщее? как они сработают? будет ли критическая ошибка? в каких браузерах будет одно действие в каких другое? 
что имеет больший приоритет-выполняемое действие? действие по таймеру,возникающие событие? какой приоритет у них будет при постановке в очередь? какие возможно станут?-никто об этом не знает. 
и если бы не было этого кода изначально ошибочного во всех своих строках(помимо ошибок алгоритма-он не соответствует её заданию ну никак-это я о моментальном падении при  клике)-эта тема здесь бы никогда не возникла. могу поспорить что подобная ситуация не рассматривается не в одной книге и не в одном учебном заведении. 
рассмотрение этого на уровне рассмотрения пишущих  браузеры-ситуация продумывания дуракозащиты 
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 10:54
			
			
			
		 |  
	| 
		
			
			| х.з     |  | 
					Регистрация: 21.11.2010 
						Сообщений: 4,588
					 
		
 |  |  
	| 
	
 
	| Сообщение от x-yuri |  
	| Это только Kolyaj заметил и вряд ли у нее был такой код - похоже не опечатку |  
	
 именно такой код у неё и был. ну даже если представить что вместо 40000 у неё 4000. всё равно таймер "должен" запуститься 5 раз пока сработают 2 анимейта 
исправил) -забыл  слово должен			 Последний раз редактировалось dmitriymar, 26.12.2010 в 11:06.
 |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 10:59
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 02.04.2010 
						Сообщений: 4,260
					 
		
 |  |  
	| dmitriymar 
Мне кажется, что если задать эти вопросы Дмитрию Сошникову , то он с удовольствием на них ответит. |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 11:02
			
			
			
		 |  
	| 
		
			
			| х.з     |  | 
					Регистрация: 21.11.2010 
						Сообщений: 4,588
					 
		
 |  |  
	| 
	
 
	| Сообщение от monolithed |  
	| Согласен, потому как есть пример (таймер тоже один): |  
	
 да он работает и срабатывает-но ты ведь каждые 15 милисекунд сдвигаешь контейнер на 1 точку. код у тебя выполняется быстрее 15 милисекунд. и появляется окно когда не выполняется никакой скрипт -окно для обработки он клик. клик на мыши(изо физиологии длится ведь дольше 15 милесекунд)-нет у нас таких скоростей движения пальцами. 
за твой код я ничего не говорю-в твоём коде (условно провожу аналогии) реализованы "прерывания" на опрос и обработку событий-тем что(опять скажу цикл) движения работает меньший промежуток времени чем промежуток времени через какой таймер его опять вызовет. но ведь  он ничего общего не имеет с той ситуацией что рассматривается)			 Последний раз редактировалось dmitriymar, 26.12.2010 в 11:07.
 |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 11:26
			
			
			
		 |  
	| 
		
			
			| х.з     |  | 
					Регистрация: 21.11.2010 
						Сообщений: 4,588
					 
		
 |  |  
	| 
	
 
	| Сообщение от monolithed |  
	| это же jQuery, там все не так. |  
	
 да чего там не так? то что обаратывачивает скрипт в свои операторы-так от этого он не быстрее выполняется а медленнее. условно его можно сравнить с языком высокого уровня а скрип с языком низкого. уровня.всёравно что сравнивать бейсик с ассемблером-ассемблер сложнее быстрее но в конечном итоге даёт больше возможностей и позволяет сделать то что бейсик никогда не сможет.хотя на первый взгляд так бедно выглядит по сравнению с бейсиком.... |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 11:53
			
			
			
		 |  
	| 
		
			|  | 
       |  | 
					Регистрация: 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 |  
	| ну и не упадёт никогда по клику. пока цикл не закончится опросов и других любых действий не будет |  
	
 ты чей цикл имел в виду? |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 11:59
			
			
			
		 |  
	| 
		
			
			| х.з     |  | 
					Регистрация: 21.11.2010 
						Сообщений: 4,588
					 
		
 |  |  
	| function goes_up(){$('#idl').animate({top:'-=180'},40000);//подъем
 $('#id').animate({top:'+=180'},1000);//падение
 };
 setInterval(goes_up, 100);
 |  |  
	| 
		
	| 
			
			 
			
				26.12.2010, 12:02
			
			
			
		 |  
	| 
		
			
			| х.з     |  | 
					Регистрация: 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>
 
 
 Просто интересно узнать, что опять не так.
 |  
	
 это по поводу второго кода что ты привёл -я его тогда вообще не рассматривал-я рассматривал код человека выложевшего вопрос. 
но по поводу кода привёдённого им-вторым постом в этом топике-привожу код какой он положил со всеми доработками-и посмотри коменты к нему.так что думаю что и первый код какой он привёл-не соответветсвует задаваемому вопросу-точнее на нём не возможно сделаить реализацию того что она хотела
			
			
	
			
			
			
			
			
				  |  |  |  |