| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > x3m (мой скрипт - древовидное меню) |
| Автор: Alx 8.10.2004, 22:18 |
| Это меню ещё не совсем доделано - надо ещё сделать кнопки "Открыть/Скрыть всё", может добавить глубокие слои. Хотя, в принципе, оно и должно быть с одним подслоем, подразделами одного раздела на сайте. Собственно говоря, как сейчас. Но потом можно будет над этим до конца подумать.. Sardar плиз, не рви мне руки и не загоняй в минусы, я ещё не научился по W3C писать! Добавлено @ 22:20 чё-то я переутомился, линк забыл кинуть... http://beauweb.h12.ru/portfolio/x3m/ |
| Автор: Sardar 8.10.2004, 23:20 |
| Работает в Мозилле, значит хорошо. Внешне красиво, но код "очень не красивый". Выпадание лучше двигать плавнее, причем скорость должна падать по экспоненте, так красивее. напишу статью как работать и главное понимать события, также установку свойств элемнтам. Попробую переписать получше, если не против |
| Автор: Се ля ви 9.10.2004, 09:37 | ||||||
| Вроде неплохо, только чего-то я не понял - почему при отображении пилюсикаа ветка открыта, нажмёшь на пилюсик - он станет минусом и ветка закроется, может, надо наоборот, как в винде, например? Ну и тормозит пострашному... Видимо из-за того, что ты каждый пункт отдельным слоем сделал - видно что они скрывааются по-одному, мне кажется, нужно их скрывать сразу... У меня такого рода скрипт есть, год назад писал - правда не столь эстетично выглядит, дизайновой обвески к нему я не делал, но при желании можно:
style/tree.css:
scripts/tree.js:
К сожалению Винда пропатченная sp2`м блокирует... надо подразобраться будет... |
| Автор: Alx 9.10.2004, 10:54 | ||||||
слушай, это наверное мой первый более или менее приличный скрипт, работающий в мозилле. У меня сломался диск с всеми браузерами и я не могу установить их пока, работает только Мозилла, щас сам там посмотрю!
я-то нет, если хочешь, но это будет уже не мой код! кстати http://beauweb.h12.ru/portfolio/map/map1.5.html моё предыдущее меню. Развиваться-то надо!
нет, это из-за того, что каждая папка грузится по отдельности. Просто сейчас один молодой человек рисует для каждого раздела значки, поэтому потом я папки вообще уберу. А если ты имеешь ввиду, что тормозит скрытие-раскрытие меню, то это специально, чтобы плавно было! вчера забыл сказать - я ещё собираюсь сделать интерфейс, для редактирования пунктов и подпунктов. Будет очень удобно всё менять. Это будет большой плюс, согласны? |
| Автор: Sardar 9.10.2004, 17:23 |
| Это называется "Я мозиллу обновил" |
| Автор: Alx 9.10.2004, 18:02 |
| недолго я радовался... |
| Автор: Alx 9.11.2004, 17:54 | ||||||||||||||||||
| всем приф! вот. Beta-версия http://alx.h14.ru/x3m/example.html http://alexandro.narod.ru/x3m.rar что тут у нас имеется. это - древовидное меню. что с ним может сделать юзер. на нужную страничку вставляется скрипт с переменными настроек и линка на внешний скрипт с самой прогой. в настройках присутствуют переменные:
как строется генерация меню. Чтобы юзер получил конфигурацию, например
ему необходимо ввести следующие данные:
картинку можно задать любую, как для папки, так и для пункта. если нужно, чтобы при открытии папки, её иконка менялась, необходимо обозвать картинку так, чтобы в ней присутствовали символы cl и в той же директории иконку с одержимым, включающем op. Например так:
и
тогда иконка будет меняться. в скрипте есть 15 встроенных иконок. Скрипт поддерживается IE и Opera, начиная с 7.0 (прапвда в каком-то глючном виде). Пробовал во всех основных браузерах (MSIE, 3 версии Oper`ы, NN, Mozilla), кроме последнего FireFox. Если кому не трудно - проверьте, плз, хотя скорее всего там тоже не покатит. Теперь о том, что к меня не получилось: 1.Функции openAll() и closeAll работают только при
потому что: 2. не получилось сделать так, чтобы плавно закрывались все подменю при закрытии какой-нибудь верхней папки. Короче говоря, если есть
при закрытии Папка 1 вся эта байда закрывается в два присеста: вначале всё содержимое Папка 1.2 исчезает, а потом и Пункт 1.1
а получается:
не знаю, как это сделать 3. Теоретически меню должно поодерживать линии, указывающие на пункты. Всё бы было хорошо, но я не представляю, как можно реализовать такой вариант: http://alexandro.w6.ru/subfree.gif то есть у меня не получилось написать алгоритм, который высчитывал где линии рисовать, а где нет. поэтому пока они отключены. вот, пожалуй, всё. если ещё чё-нить вспомню - напишу. http://www.destroydrop.com/javascript/tree/ я знаю, что там есть функции и настройки покруче чем у меня, но у меня тоже кое-что есть. напрмер плавность, возможность выбора абсолютно любой картинки для каждого пункта и папки и т.д. и последнее, 2Sardar я тут недавно увидел твоё меню, оно тоже "плавное" |
| Автор: Sardar 10.11.2004, 00:27 |
| В Мозилле не пашет, ругается на отсутствие window.event и другие вещи. Читай мою и Aliance статейку о событиях. Юзаем устаревшие и поддерживаемые только ИЕ коллекции children. На счтёт плавного закрытия - это до нас с тобой уже придумывали, как и большинство эффектов Моё меню построенно на списках, что лучше таблиц как у тебя. На таблицах сложнее сделать динамичную модификацию меню(подгрузка пунктов меню), да и таблицы глючат под Мозиллой. P.S. Уже готово, отлаживаю меню для нашего FAQ'а, посмотришь как сделанно |
| Автор: Alx 10.11.2004, 16:05 | ||
а можно поподробнее? насчёт траблов я и сам знаю, только исправить самому не получилось. я знаю, нужно childNodes[n] и parentNode только у меня всё равно не получается. Ну а вообще, хотелось бы услышать общий отзыв о коде и обо всём остальном (юзабильность, удобство настройки меню и т.п.) |
| Автор: Sardar 10.11.2004, 21:46 | ||||||
Открой менюшку, посмотри верстку, она заранее "сгенерированна".
Спашивал бы что не получается
Это чисто субьективное мнение... Хранение данных меню в многомерном массиве - издевательство над пользователем, тут даже кодер со стажем запутатся может Траблы с анимацией ты уже описал, траблы с таблицами ты еще познаешь, ну а код... код совсем не очень... Не хочу тебя задеть |
| Автор: Alx 10.11.2004, 22:10 | ||||||||||||||
желание огромное! только самому написать с твоей помощью, а не чтобы ты написал
а я откуда знаю?
да? а мне кажется, это легче, чем в dTree... (ссылка выше) ну ладно, а как по другому? ведь если использовать пользовательский класс, будет почти тоже самое? там как?
а у меня
разве моё не проще выглядит?
лично мне совсем самому не нравится mainFuncOp() и mainFuncClose(). Но как по-другому реализовать передачу ссылки на объект при запуке таймера, я не знаю. столько с этим не промучился. Почему создатели языка не сделают, чтобы можно было задавать таймаут в массиве? например так:
и строка писалась бы каждую секунду.... |
| Автор: Sardar 11.11.2004, 00:06 | ||||||||
Ну есть же дебаггер Venkman, на крайняк напиши в строка адреса: "javascript:" вылезет окошко с консолью, там все ошибки.
А так(мой избитый прием):
Как видишь куча различных способов модификации меню "на лету" и никаких ID и не нужно, у нас в скрипте есть наше дерево.
Не в том направлении мыслишь |