nerv_, ваш способ медленнее и больше памяти жрёт.
|
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 вкладок в каждой.. и он всегда тормозит.. но остановить скрипт он всёже хочет в данном месте |
А что после ифа?
И каково значение progress? lim(a)=2 при b=>0, следовательно, если progress > -1/11, то бесконечный цикл гарантирован. |
код взят всё с тойже статьи
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 говорит Цитата:
|
сделал одну из предложеных функций easeOut'вой
function easeOut(progress) { return 1-Math.pow((1-progress),2) * ((2.5 + 1) * (1-progress) - 2.5); } firefox, ниразу не завис ещё, остальные еще быстрее залетали но вопрос по Цитата:
поискал в инете, в статьях про 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 притормаживал это впринципе норм.. его обычное состояние ![]() |
Вообще, object.childNodes - это массив (грубо говоря) узлов. Поэтому можно попробовать перебирать вот так:
for (var i=0; i!= object.childNodes; ++i) Потому что мало ли, что там может выплыть при переборе через key in obj. |
эхххххх..... =\\\\\\\\\\\
var n = 0; /* Все прямые потомки являющиеся элементами */ for (var i in objPiE.childNodes) n=(objPiE.childNodes[i].nodeType==1)?(++n):(n); /* Колличество элементов li в данном списке */ красивей смотрелось =( |
Цитата:
перебирайте элементы через цикл, а не через перебор свойств. var i = 0, curr; while(curr = obj.childNodes[i++]){ //.... } |
for(var curr, i = 0; curr = obj.childNodes[i]; i++){ if ( curr.nodeType == 1 ) { // ... } } |
trikadin,
спасибо огромное работает также, но firebug ругаться перестал на это... он что-то вобще взбесился.. даже на jquery, который тупо только подключен, ругается |
Часовой пояс GMT +3, время: 22:24. |