забыл сказать.
для уменьшения веса её на своих проектах, можно "составить" собственное ядро. По крайней мере для 1.0 было так - там формочка и чекбоксы. Тыкаешь в них и отмечаешь что конкретно тебе будет нужно, а что нет - типа там выпадающие меню, табы и всё. И ядро это будет весить не 3 Мб (условно), а 300 Кб.
Немножко дополню автора и прорекламирую систему =).
Эту платформу начал кодить Jack Scolum - как какую-то фичу для одного из сервисов Yahoo. Потом проект разросся и стал самостоятельным.
Про особенности (интерфейсные элементы): деревья + перемещение нодов между двумя деревьями и сортировка drag'n'drop, табы, полные аяксовых примочек формы, ресайз блочных элементов и картинок, "портальные системы" (это типа как на netvibes), ну и конечно все эти чудеса анимированы.
Короче, эта штука просто невероятна! В качестве ориентира можете глянуть список компаний, на сайтах которых она работает: Adobe, Borland, Cisco Systems Inc., CNN, IBM, NATO, Visa International... Там их много - ищите на главной, в самом низу.
К несомненным плюсам можно отнести лёгкость использования. Всё очень ясно и чётко документировано. Кроме всего прочего, по отзывам знакомых с jQuery и Prototype - extJS работает быстрее.
Есть такая йогическая поза расслабления - Шавасана.
Всем, кто заинтересовался постом (а также тем, кто !ВНИМАНИЕ! хочет тратить меньше времени на сон), рекомендую пройти по ссылкам
У человека есть не 12 нот, а всего 7, которые вместе в любом случае представляют собой гармонию. Короче, урезали функциональнось, подняли юзабилити и получили инструмент для всех. Этакий виндоус в мире музыки.
P.S. Я ни разу не сказал что это плохо. Лично мне нравится очень. =)
ага. если я правильно понимаю, вы предлагаете по onmouseover тега (допустим) body вызывать обработчик, который будет спускаться по (опять же) всему дому и искать последний элемент в иерархии и что-то с ним делать.
Но ведь это же такой же проход по всему документу с той лишь разницей, что он будет выполняться гораздо чаще. Фактически, почти при каждом движении мышки.
Вот это, я считаю, уже совсем нерациональное решение.
да и вообще. Если верстать дивами, то максимальная "глубина залегания" нодов будет не больше 5-6. Соответственно, выделение памяти при рекурсии гораздо меньше.
Для сравнения в табличной верстке table->tbody->tr->td->p. А я часто видел и до трёх таблиц друг в друге.
кошмар-то кошмар. Но можно дописать ещё одну строчку и указав root, пройтись только по одной ветке дома.
if(root=='') root = document.getElementsByTagName("BODY")['0'];
else root = document.getElementsById(root);
Не то чтобы совсем не в тему, но и не совсем в тему.
Сам постить не могу, посему расположу здесь.
В некоторых браузерах (не будем показывать пальцем) псевдокласс :hover применим только к тегам <a>. Для остальных же тегов он тупо игнорируется. Так вот, родилось кроссбраузерное решение сей проблемки. Только теперь указывать нужно не псевдокласс, а нормальный класс элемента. Пример
P.S. Лично мне понравилось.
http://maximalnaya-dlina-domennogo-imeni…
↑
`- это не реклама.
для уменьшения веса её на своих проектах, можно "составить" собственное ядро. По крайней мере для 1.0 было так - там формочка и чекбоксы. Тыкаешь в них и отмечаешь что конкретно тебе будет нужно, а что нет - типа там выпадающие меню, табы и всё. И ядро это будет весить не 3 Мб (условно), а 300 Кб.
Эту платформу начал кодить Jack Scolum - как какую-то фичу для одного из сервисов Yahoo. Потом проект разросся и стал самостоятельным.
Про особенности (интерфейсные элементы): деревья + перемещение нодов между двумя деревьями и сортировка drag'n'drop, табы, полные аяксовых примочек формы, ресайз блочных элементов и картинок, "портальные системы" (это типа как на netvibes), ну и конечно все эти чудеса анимированы.
Короче, эта штука просто невероятна! В качестве ориентира можете глянуть список компаний, на сайтах которых она работает: Adobe, Borland, Cisco Systems Inc., CNN, IBM, NATO, Visa International... Там их много - ищите на главной, в самом низу.
К несомненным плюсам можно отнести лёгкость использования. Всё очень ясно и чётко документировано. Кроме всего прочего, по отзывам знакомых с jQuery и Prototype - extJS работает быстрее.
Для заинтересовавшихся поглядеть:
примеры работы
русское комьюнити
=)))
Всем, кто заинтересовался постом (а также тем, кто !ВНИМАНИЕ! хочет тратить меньше времени на сон), рекомендую пройти по ссылкам
Описание техники
Описание техники по фазам
P.S. Сам активно практикую - отличнейшая штука!
P.S. Я ни разу не сказал что это плохо. Лично мне нравится очень. =)
Но ведь это же такой же проход по всему документу с той лишь разницей, что он будет выполняться гораздо чаще. Фактически, почти при каждом движении мышки.
Вот это, я считаю, уже совсем нерациональное решение.
Для сравнения в табличной верстке table->tbody->tr->td->p. А я часто видел и до трёх таблиц друг в друге.
if(root=='') root = document.getElementsByTagName("BODY")['0'];
else root = document.getElementsById(root);
Сам постить не могу, посему расположу здесь.
В некоторых браузерах (не будем показывать пальцем) псевдокласс :hover применим только к тегам <a>. Для остальных же тегов он тупо игнорируется. Так вот, родилось кроссбраузерное решение сей проблемки. Только теперь указывать нужно не псевдокласс, а нормальный класс элемента. Пример
#content h1.hover {
color: #888;
text-decoration: none;
}
Собственно скрипт.
function addprops(root) {
if(root=='') root = document.getElementsByTagName("BODY")['0'];
for(var i=0; i<root.childNodes.length; i++) {
node = root.childNodes[i];
if (!node.tagName) continue;
node.onmouseover=function() {this.className+=" hover";}
node.onmouseout=function() {
this.className=this.className.replace(" hover", "");
this.className=this.className.replace("hover", "");
}
if(node.hasChildNodes()) addprops(node);
}
return 0;
}
Вставляю в документ я это вот так
window.onLoad = init();
function init() {
addprops('');
//сюда можно воткнуть ещё какие-нибудь функции
//чтоб исполнялись при загрузке
}