| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Наши скрипты > Всплывающие подсказки(tooltip) |
| Автор: Sardar 25.5.2005, 18:38 | ||
| Преимущество этих подсказок над стандартными аттрибутом title в том, что эти подсказки содержат полноценный HTML, т.е. картинки и т.п. Внешний вид тоже задаёте сами Начиналось всё здесь: http://forum.vingrad.ru/index.php?showtopic=32471
|
| Автор: Opik 29.8.2005, 10:57 |
| 3 Баги: 1) на объектов, кт-ые юзают onmouseout теряется вызов функции при событии. 2) при инициализации тултипа снизу документа пояляется "лишняя" область. 3) при тултипе установленном на объекте, близлежащему к границе документа(у правого/ нижнего скроллинга) объект выходит за рамки и создает неудобства, вместо того, что бы показываться в другую сторону. |
| Автор: Wowa 30.8.2005, 00:28 |
| Может ли быть такое, что текст в несколько предложения обрезается? |
| Автор: Aliance 30.8.2005, 00:42 |
| В Opera? Там проблемы с отрисовкой... Хотя может быть и не в ней проблема, т.к. это же обычный div. Поидеи, все может быть |
| Автор: Wowa 30.8.2005, 00:45 |
| IE 6 Aliance вот ссылка: http://exrus.de/ru/search/search.php?search_firms=neue Вот в этой строке: 003876 Neue Zeiten Edingen-Neckarhausen e.V. (Вес: 1) Заканчивается на "Вместо знаний". |
| Автор: Sardar 30.8.2005, 00:46 | ||||||
Нет, если только не глюк браузера. Это очень простой код, он просто создаёт слой, куда кидает любой контент и показывает над элементом.
ОК, доработаю. Добавлено @ 00:48
Если глянешь в отрендеренный код, то увидишь такое: Вместо знаний "про язык, кавычка закрылась, всё остальное браузер игнорирует. |
| Автор: Wowa 30.8.2005, 01:04 | ||
Аа, спасибо. |
| Автор: butionok 13.9.2005, 14:22 |
| Sardar, а почему document.getElementById('tip').clientWidth не даёт ширину подсказки? |
| Автор: butionok 13.9.2005, 19:42 | ||||
У меня "лишняя" область наблюдалась (тестировал на IE, Netscape 7.2,8.0, FireFox 1.0.6, Opera 8.02) только тогда, когда я прикреплял tip не к body, а к какому-нибудь слою. Что касается выхода за рамки, то это решается небольшой модификацией
|
| Автор: Sardar 13.9.2005, 21:48 | ||
Потому что нет такого свойства. Обращайся к справочнику всегда: http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html и MSDN. |
| Автор: sergejzr 14.10.2005, 23:31 |
| узнать ширину/высоту подсказки по свойствам scrollWidth, scrollHeight |
| Автор: Sardar 14.10.2005, 23:58 |
| Млин, обещал же новые подсказки, давно уже готово (для себя и для Opik'а делал), доки только нет, вернее времени нет дописать Первые пара строк: http://sardar.vingrad.ru/projects/ToolTip/index.htm Глядим в код, врубаемся. Что не ясно спрашиваем. Кратко:
Звиняюсь, допишу мануал, выложу |
| Автор: Aliance 3.11.2005, 22:31 |
| Хм...у меня не работает, хотя и ошибок не выдает :'-( |
| Автор: Sardar 4.11.2005, 00:52 |
| Подсказки там не сразу открываються, а через время, по дефолту 2 секунды, хотя можешь в аттрибуте tooltip-set="delay-on:<миллисекунды>;" задать задержку |
| Автор: Aliance 4.11.2005, 01:11 | ||
Ничего =( |
| Автор: Sardar 4.11.2005, 13:39 |
| Если что то не работает, значит есть ошибка Смотрим в body.onload - функция называеться initToolTips, s там лишняя. Далее что бы подсказки работали, нужно подключить стиль tooltip.css, отдельный .tool_tip не существует. Знаю что нужно написать ман как это использовать и повытаскивать оставшиеся баги(в основном monkeyproof проверки), но млин катастрофически не хватает времени |
| Автор: Aliance 4.11.2005, 14:14 |
| Все спасибо, ошибка в том, что я брал разметку с первой версии, а скрипт со второй Поэтому и лишняя s =) Огромное спасибо ) |
| Автор: sulla 21.3.2006, 20:14 | ||||
используя первый вариант подсказок столкнулся стем что нельзя засунуть
для того чтобы работали корректно подсказки помогло вот такая вставка в функцию:
хык, можете ещё кому пригодиться. |
| Автор: Гриша 22.3.2006, 02:21 |
| Нашел файл с подсказкой по этой ссылке: http://sardar.vingrad.ru/projects/ToolTip/index.htm Ну все хорошо, просто мечта, самое главное то что еще и текст из подсказки можно скопировать. Нот вот проблема: Если к пример в подсказку вставить текст длинной 255 символв, т.е. соответсвенно в длину на экране она не уместиться, и втаком случае подсказка не сжимается, а выходит за границы окна слева, а так как изображение у меня слева, то от подсказки остаестя 1/5. Не подскажите ли решение этой проблемы. |
| Автор: sulla 22.3.2006, 13:21 |
| собственно подобную пролему решить просто: в подсказку не просто текст а: 1. div - с заданными высотой и шириной 2. таблицу также с заданными высотой и шириной только вот есть проблемка если много подсказок ан странице в конце старницы добавляется кусок пустого протсранства... пропадает толькоесли открыть все подсказки |
| Автор: Гриша 22.3.2006, 17:36 |
| sulla, спасибо за ответ. Текст в посдказке может быть как из 5 символов так и из 255. К примеру если я установлю максимальную ширину подстроенную под текст из 255 символов, то тогда при тексте из 5 символов, подсказка, будет больше длинны этого текста. ВОт все в подсказке хорошо, ну только еслибы за левую границу так не вылезала. Я в javascript 0. Поэтому смотря код мне ничего не ясно, если вам самим удобно использовать такую подсказку и вы решите устронить эту проблему, может быть вы напишите здесь пример решения этой проблемы. Вот никак не клеится у меня на сайте (еще не закончил делать) без таких подсказок. |
| Автор: Ciber SLasH 23.3.2006, 21:59 |
| Гриша, а чем тебя не устраивает tooltip, который в аттаче этого поста: http://forum.vingrad.ru/index.php?showtopic=84606&view=findpost&p=660816 |
| Автор: Гриша 24.3.2006, 01:28 |
| Ciber SLasH, вы мне когда в топики в одном написали про этот вариант, так он у меня щас лежит, как запасной. Я вот ща еще раз псомтрел, как всплывающая подсказка в нем все хорошо. Только есть к примеру текст подсказки будет из 10 символов, то сам размер подсказки будет больше. Когд там конечно мудреный, я из самой страницы код скачал в два объелиненных файла с дополнительными кодами. Вы мне очень хорошо помогли с тем что дали мне ссылку на этот код и даже пояснили как извлекать данные из alt и title. Я когда увидел tooltip Sardar, там где из него можно брать текст, я просто очумел, я та обрадовался, и подсказка по длине текста выстраивается (ну я как понимаю это в с тсилях нет длинны), но вот когда текста много подсказака уходит в левую сторону за экран, вот это все испортило. Я и подумал, может быть мне подскажут как это исправить. Я вот еще sulla как то недопонял, как сделать то что он мне написал. Я добавил в стиль этой подсказки размер width:250px, ну почему-то вот за правый край она не съезжает, но реску перемещается за левый часть экрана, хотя могла бы уместиться по центру. Да уж очень сложно все это. |
| Автор: Гриша 24.3.2006, 22:42 |
| Подскажите пожалуйста, а как вот во всплывающей подсказке tooltip Saradar, с этой страницы: http://sardar.vingrad.ru/projects/ToolTip/index.htm Сделать так, чтобы она была обычной плавающей подсказкой, т.е. что нужно подправить, чтобы текст в подсказке нельзя было выделять, я хочу посмотреть как она себя будет вести в таком случае. |
| Автор: Aliance 27.3.2006, 00:08 | ||||
| А комментарии он для кого писал? В этой строчке устанавливается режим подсказки:
тебе нужно изменить его на:
|
| Автор: Гриша 28.3.2006, 03:01 | ||
| Aliance, спасибо за разъяснение. Я попробовал изменить все эти настройки:
В них нельзя запретить выделение текста в подсказке. Вот эта настройка: floating: "follow", дает выелять текст, но ездиет за мышкой во все стороны (чтобы выделить текст, нужно постораться), благодаря этому я увидел, что ведет подсказка себя также, т.е. при сужении окна, вылезает за левую часть экрана. |
| Автор: sulla 28.3.2006, 13:51 | ||
| Гриша, а на чём программируете для тог очтобы вставить таблицу или кучу текста поступил так:
проблему с добавлением внизу пустог оместа решил очень просто : пр иинииализации для каждой подсказки указал top и left равные 10 ) |
| Автор: Гриша 31.3.2006, 17:28 |
| sulla, спасибо большое за разъяснения. Программирую на PHP Ну я уже нашел другой вариант вместо отображения подсказок из которых можно копировать текст. |
| Автор: z-END 14.10.2006, 14:19 |
| А есть какая-то возможность использовать данный скрипт так, чтобы документ оставался валидным?! а то валидатор на http://validator.w3.org/check?uri=http%3A%2F%2Fsardar.vingrad.ru%2Fprojects%2FToolTip%2Findex.htm&charset=windows-1251&doctype=HTML+4.01+Strict ругается |
| Автор: Wowa 14.10.2006, 14:50 |
| z-END, у тебя там только проблема с тегом span связанная с tooltip. Остальные ошибки с других мест идут. А вместо тега span ты можешь любой другой тег использовать. В теге body указывается, какие теги должны быть обработаны. |
| Автор: z-END 14.10.2006, 15:17 | ||||
я про нее и говорю, стоит включить подсказку в тело, то сайт становиться невалидным. Вот код:
Вот результат:
|
| Автор: Wowa 14.10.2006, 15:43 | ||
А если такой заголовок пустить:
Тогда должно быть валидно, ведь имхо в XHTML любые аттрибуты разрешены. |
| Автор: z-END 14.10.2006, 18:09 |
| а меня какраз проблема HTML мучает |
| Автор: Rock 4.11.2006, 19:56 |
| хотелось бы поподробнее о использовании шаблонов, если можно |
| Автор: Rock 4.11.2006, 21:32 | ||
попытался разобраться в коде, чтобы воспользоваться подсказками на шаблонах, вот что получилось:
Вот таким вот образом у меня получилось сделать это, вопрос вообщем так ли это задумывалось и правильно ли я сделал? )) PS: спасибо за скрипт, очень пригодился. |
| Автор: Wowa 25.12.2006, 21:14 |
| А как использовать переменные <% var1 %> в шаблоне? |
| Автор: Wowa 25.12.2006, 21:43 | ||||
Если я произвожу такую замену, то HTML не интерпретируется, а так и отображается. Быть может это зависит от типа документа? у меня:
|
| Автор: Wowa 26.12.2006, 00:32 |
Да, я на vingrad.ru его поставил. Чтобы отображалась инфо о пользователе(при наводе мышкой на ник). P.S. Спасибо за объяснение. |
| Автор: tolik777 21.1.2007, 17:23 |
| Скажите. Может кто уже видел новую фичу от гугла с использованием AJAX: http://translate.google.com/translate?hl=ru&sl=en&u=http://english.cxem.net/&sa=X&oi=translate&resnum=1&ct=result&prev=/search%3Fq%3Dsite:english.cxem.net%26hl%3Dru%26lr%3D Попробуйте наведите на какое-нибудь слово. Всплывает очень красивое окошко с тенью, а в нем оригинал предложения на английском языке. Может кто знает как рализовать такое (имею ввиду часть JavaScript а не аякс) |
| Автор: Sardar 21.1.2007, 17:46 |
| Аякс там не используется, оригинальный и переведённый текст стоят рядом (в span контейнере, скрыт по display: none). При наведении мышой на текст, копия ноды помещается во временное baloon окошко и показывается. Собственно вся задача создать такое окошко, на JS только позиционируем и показываем. |
| Автор: GZep 21.1.2007, 21:51 |
А что, есть что-то поновее? Я имею ввиду новая версия tooltip'a... |
| Автор: badGamer 22.1.2007, 08:21 | ||
| Sardar, а как в tooltip встроить аякс? два дня бился Просто никогда не кодил на JS.... а тут такое дело. Очень хочется чтобы в тексте странички было что-то вида:
Как сделать так, чтобы tooltip запросил инфу у скрипта-обработчика и вернул ответ (аякс тобишь Помогите плиз... |
| Автор: GZep 22.1.2007, 14:39 |
Не очень хорошая идея по 2 причинам:
|
| Автор: Sardar 22.1.2007, 15:50 |
| GZep, поддерживаю, ложить в подсказку целую страницу незачем, следовательно всё необходимое можно отослать вместе со страницей. Тогда и подсказка будет действительно подсказкой, а не примером как разработчик умело владеет аяксом |
| Автор: badGamer 22.1.2007, 19:58 | ||
Ну не знаю имхо выполнение запрос зймет очень мало времени. Другое дело скорость соединения.... но и это не проблема
Ну а кто говорил про большие??? как напрмер (небольшая картинка + небольшое описание + пара сцылок)*150 итого получаецо 800-1000 байт * 150 = порядка 140 килобайт. Это ерунда согласен, но информация изменяется динамически, хоть и нечасто, но всеже изменяется... (делаю интерактивную карту tooltip используется для вывода и нформации о каждом городе) Вот и хотелось бы брать инфу с сервера. Если Вам нетрудно, подсобите пожалуйсто. |
| Автор: GZep 23.1.2007, 14:17 |
Вы даже, наверное, не представляете себе какие бывают полудохлые хостинги. Да. Ну вот и подгружайте информацию при помощи аякса. Например, раньше вы ба подгрузили обычный блок div с содержанием, а теперь надо подгрузить этот блок, только в нем поставить атрибут tooltip и разработка уважаемого Sardar'a будет работать с этим догруженным блоком. |
| Автор: badGamer 24.1.2007, 11:03 | ||||
Зачем такими пользоватся? у меня хостингом все нормально
В том-то все и дело, раньше вообще ничего не подгружалосль, описание состояло из 3-4 слов и все было html. А теперь описание стало больше и возникли трудности... Если Вас это не затруднит киньте, пожалуйста, небольшой пример к вышесказанному... Я очень слабо знаком с JS. Заранее благодарен |
| Автор: GZep 24.1.2007, 15:34 |
Ну, тут не примеры надо , а статьи. А именно статьи про AJAX: http://ru.wikipedia.org/wiki/Ajax http://www.ibm.com/developerworks/ru/library/wa-ajaxintro1/ http://www.xakep.ru//magazine/xs/067/052/1.asp И в ФАК Винграда тоже стоит заглянуть...(кстати, обратите внимание на меню слева - в нем для подгрузки данных используется ajax) http://vingrad.ru/JAVASCRIPT-ART-002998 Ну с этими статьями я думаю, что все понятно будет. З.Ы. Что хочется добавить: на самом деле эту разработку Sardar'a не надо дорабатывать, а надо внедрить аякс в вашу разметку. |
| Автор: badGamer 24.1.2007, 16:57 | ||
| Спасибо конечно за link`s. С AJAX все более-менее понятно. Я бы даже сказал более чем менее Проблема в моей javascript безграмотности... Как я понимаю нужно юзать вид external tooltip. В итоге каждая ссылка будет вида
Сразу вопрос, а как loadinfo сообщить, что это ссылка на 134 город, как передать это значение? Я правильно извратил идею? |
| Автор: GZep 25.1.2007, 12:42 |
| badGamer, Вы хотите подгружать текст подсказки или блок, в котором есть атрибут tooltip с содержанием подсказки. Если 2-е, то это не так сложно, а вот с первым, боюсь вам сможет помочь только Sardar(потому что там придется сам объект ковырять). Да, и откуда эта разметка? |
| Автор: badGamer 25.1.2007, 15:57 | ||||||||
Мне показалось, что 1 проще намного, Так что видимо вопрос уважаемому Sardar:). итого получилось следующее:
Сделал так, чтобы ф-цию L(value) не надо было прописывать в onmouseover. Теперь она автоматом вешается на выбранные теги
Выходит следующее: к 2 подсказка отображается. Но мне захотелось, чтобы вообще не надо было к подсказкам ничего добовлять, чтобы js автоматически добавл tooltip к заданному в init тэгу. в коде tooltip в функции applyToolTip решил вырезать строчку
Тогда подсказки отображаются ко всем <area>, но когда наводишь мышкой (IE) на подсказку выскакивает "Stack overflow at line: 0". И ничего я не могу с этим поделать. Ибо в js разбираюсь в первый раз. Да и в Opera как-то криво работать начинают. (Не исчезают сразу, тормозят). ps настройки следующие tooltip:
ВотЪ. помогите плиз разобратся с возникшим глюком, если не трудно p.s. http://pitbull.1gb.in/emap/ - Так это выглядит. http://pitbull.1gb.in/emap/emap.zip - исходник. |
| Автор: badGamer 27.1.2007, 12:24 | ||
| Уважаемый Sardar. Дальнейшие эксперименты привели к следующему. По непонятным причинам Ваша подсказка выдает ошибку когда наводишь мышкой (IE) на подсказку выскакивает "Stack overflow at line: 0". Да и в Opera как-то криво работать начинают. (Не исчезают сразу, тормозят). Это происходит без малейших вмешательств в код. У меня она вскакивает как только я ставлю
HTML соответсвенно приведен постом выше, правда вырезаны все ajax вызовы и прочее. Помогите пожалуйста. |
| Автор: Sardar 27.1.2007, 19:49 | ||
Дай ссылку на страницу. Похоже где то бесконечная рекурсия, чего в моём коде не может быть. Извиняюсь, сейчас очень занят, времени едва хватает проверять этот раздел. Через две недели перепишу подсказки с возможностью загружать инфу аяксом (весь общий код разбежится по ViJio, hook'иться можно с любого места). Раньше никак |
| Автор: badGamer 28.1.2007, 11:45 |
| http://random.1gb.in/emap/map.html вот пожалуйста. http://random.1gb.in/emap/emap.rar Глянь эти ссылки. Если сможешь все-таки посмотри может быстрый взгял в родной код че-нить обнаружит... |
| Автор: Sardar 28.1.2007, 18:35 |
ИЕ7, Опера 9, FF2 - всё работает без ошибок. ИЕ6 уже нет (винда снесла после апдейта), но если в коде ничего не менял, то под IE6 я раньше тестировал. Понятия не имею почему у тебя выскакивает ошибка... выкладывай версию браузера, призывай больше народу пусть потестят. Это при условии что ссылку дал ты верную и именно там ошибка |
| Автор: RomantikKZ 30.3.2007, 20:17 |
| Здравствуйте, А будет ли всетаки написан мануал? Т.к. очень нужно |
| Автор: Sardar 30.3.2007, 22:34 |
| RomantikKZ, лучше спроси что не ясно (в отдельной теме) Хотел переписать скрипт, затем ман. Скрипт соистоит из собственно самой логики подсказки + общих функций "на все случаи жизни" + парсер CSS подобного синтаксиса. Хотел это всё разделить по ViJio библиотеке, да с учёбой/работой всё руки не доходят :hmm |
| Автор: RomantikKZ 31.3.2007, 19:35 |
| Жаль :( Да собсно многое не понятно...А особенно с этой проблемой сток овефлоу как у бадмэна... |
| Автор: Sardar 31.3.2007, 23:13 |
| Нашёл ошибку, вернее по удивлялся как тупо я умею писать В примере от badGamer на кучу объектов вешается единый объект-подсказка. В результате регистрируем в цепочку массу "почти одинаковых" обработчиков onmouseover и onmousemove. Даже если бы брауер не захлёбывался, то подсказка работала бы корректно только для самого последнего объекта, потому как состояние "открыто/закрыто" держится в нём (в контексте вызова makeToolTipBox для него), а не в объекте подсказки. Что заставило меня так писать не знаю, но знаю что единую подсказку поставить на кучу объектов пока нельзя Всё равно подсказка простая, используй лучше тип simple (пропиши в ToolTip.defaultSets или задавай аттрибутом tooltip-set), этот тип раньше был выставлен по дефолту. Позже перепишу скрипт. |
| Автор: legat 16.5.2007, 17:35 | ||||
Надо заменить ДВОЙНЫЕ КАВЫЧКИ на ОДИНАРНЫЕ, вот так:
Ибо обычно при вёрстке делаются в HTML ДВОЙНЫЕ КАВЫЧКИ и при вставке их - будут глюки в работе. А при вставке вёрстки с Двойными кавычками в Одинарные - всё работает нормально. Пофиксите в самом первом треде код - новичкам сложности лишние будут с тем что есть сейчас. |
| Автор: DeMx 6.7.2007, 19:36 |
| Подсказки работают не корректно в IE 7 (WinXP SP2). Даже вот этот пример: http://sardar.vingrad.ru/projects/ToolTip/index.htm Когда наводишь курсор на объект с подсказкой, то она успешно появляется, но когда убираешь - подсказка не исчезает и появляется ошибка: ""filters.Alpha.opacity" - есть null или не является объектом". |