Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 04.12.2011, 20:37
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

nerv_, ваш способ медленнее и больше памяти жрёт.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #32 (permalink)  
Старый 05.12.2011, 02:20
Интересующийся
Отправить личное сообщение для taha Посмотреть профиль Найти все сообщения от taha
 
Регистрация: 29.11.2011
Сообщений: 22

trikadin, сделал как Вы сказали и всё прекрасно, не считая firefox, который тормозит скрипт на функции easeOut в этих строках, как и в прошлых вариантах

function d(progress) {
	        for(var a = 0, b = 1, result; 1; a += b, b /= 2) {
	           if (progress >= (7 - 4 * a) / 11)


правда в нем еще две группы с 10-15 вкладок в каждой.. и он всегда тормозит.. но остановить скрипт он всёже хочет в данном месте
Ответить с цитированием
  #33 (permalink)  
Старый 05.12.2011, 02:29
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

А что после ифа?

И каково значение progress? lim(a)=2 при b=>0, следовательно, если progress > -1/11, то бесконечный цикл гарантирован.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #34 (permalink)  
Старый 05.12.2011, 03:34
Интересующийся
Отправить личное сообщение для taha Посмотреть профиль Найти все сообщения от taha
 
Регистрация: 29.11.2011
Сообщений: 22

код взят всё с тойже статьи

function easeOut(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);
}


поемуто с простейшими функциями такого не случается

значение progress не знаю.. ибо firefox зависает.. это периодически случается только в нём кстати...

но теперь, благодаря Вам, в три раза реже))

оффтоп... когда перебираю все анимируемые элементы
var obj = document.getElementById("Mylist");
	for (var i in obj.childNodes){
			if ( obj.childNodes[i].nodeType == 1 ){
				...
       }}

firebug говорит
Цитата:
Предупреждение: reference to undefined property obj.childNodes[i].nodeType
Строка: 49
не могу понять почему... вроде всё правильно же

Последний раз редактировалось taha, 05.12.2011 в 03:40.
Ответить с цитированием
  #35 (permalink)  
Старый 05.12.2011, 08:38
Интересующийся
Отправить личное сообщение для taha Посмотреть профиль Найти все сообщения от taha
 
Регистрация: 29.11.2011
Сообщений: 22

сделал одну из предложеных функций easeOut'вой

function easeOut(progress) { return 1-Math.pow((1-progress),2) * ((2.5 + 1) * (1-progress) - 2.5); }


firefox, ниразу не завис ещё, остальные еще быстрее залетали

но вопрос по
Цитата:
Предупреждение: reference to undefined property obj.childNodes[i].nodeType
Строка: 49
остался актуален

поискал в инете, в статьях про DOM примеры вот такие:
var object = document.getElementById('el');
    for (var childItem in object.childNodes) {
    if (object.childNodes[childItem].nodeType == 1)
    object.childNodes[childItem].style.color = '#FF0000';
    }

тоесть тоже самое... и в чём косяк?

PS: то что firefox притормаживал это впринципе норм.. его обычное состояние

Последний раз редактировалось taha, 05.12.2011 в 10:30.
Ответить с цитированием
  #36 (permalink)  
Старый 05.12.2011, 11:59
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Вообще, object.childNodes - это массив (грубо говоря) узлов. Поэтому можно попробовать перебирать вот так:
for (var i=0; i!= object.childNodes; ++i)


Потому что мало ли, что там может выплыть при переборе через key in obj.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #37 (permalink)  
Старый 05.12.2011, 12:17
Интересующийся
Отправить личное сообщение для taha Посмотреть профиль Найти все сообщения от taha
 
Регистрация: 29.11.2011
Сообщений: 22

эхххххх..... =\\\\\\\\\\\

var n = 0; /* Все прямые потомки являющиеся элементами */

	for (var i in objPiE.childNodes) n=(objPiE.childNodes[i].nodeType==1)?(++n):(n);
	/* Колличество элементов li в данном списке */


красивей смотрелось =(
Ответить с цитированием
  #38 (permalink)  
Старый 05.12.2011, 12:30
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от taha Посмотреть сообщение
var obj = document.getElementById("Mylist");
	for (var i in obj.childNodes){
			if ( obj.childNodes[i].nodeType == 1 ){
				...
       }}
в IE сюда попадёт ещё и item и length.
перебирайте элементы через цикл, а не через перебор свойств.
var i = 0, curr;
while(curr = obj.childNodes[i++]){
        //....
}
Ответить с цитированием
  #39 (permalink)  
Старый 05.12.2011, 12:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

for(var curr, i = 0; curr = obj.childNodes[i]; i++){ 
    if ( curr.nodeType == 1 ) {
        // ...
    }
}
Ответить с цитированием
  #40 (permalink)  
Старый 05.12.2011, 12:46
Интересующийся
Отправить личное сообщение для taha Посмотреть профиль Найти все сообщения от taha
 
Регистрация: 29.11.2011
Сообщений: 22

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не срабатывает scrollLeft анимация в firefox krokodily jQuery 2 25.08.2016 14:19
JQuery, анимация для нескольких элементов сразу, возможно ли? Logo jQuery 21 29.05.2012 21:50
Анимация движения Armen Общие вопросы Javascript 8 02.08.2011 18:32
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Цикличность анимация? SashaBorandi jQuery 1 25.12.2008 09:20