Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как привязать слой к слову (https://javascript.ru/forum/misc/3901-kak-privyazat-slojj-k-slovu.html)

matana 04.06.2009 01:02

как привязать слой к слову
 
Здравствуйте!
Этот слой - всплывающая подсказка. Можно ли его привязать не к странице, а к слову?
#layer2
{
background-color:#ffffff;
position: absolute;
overflow: auto;
border-bottom: 1px solid;
border-top: 1px solid;
padding: 2px 10px;
width:400px;
height: 400px;
left: 5%;
top: 5%;
visibilitY:hidden;
}

ZoNT 04.06.2009 09:53

что есть слово?
<b>С</b>л<span>о<i>в</i></span>о
- это слово?

Так вот привязаться можно к элементу (тегу) на странице, так как его координаты можно получить.

Gvozd 04.06.2009 09:56

а получить координаты элемента можно с помощью статьи

matana 04.06.2009 10:48

Загадочный ответ...
Вызывает новые вопросы:
1. как получить эти координаты,
2. в таблице стилей все равно писать пиксели,
3. ссылка на функцию не изменится?
Слово - это просто слово, например, "файл". Я представляю, что нужный мне результат выглядит, как контекстное меню в Windows: подсказка всплывает в зависимости от положения слова на экране сбоку, сверху или снизу от него. Как сделать - не знаю. Пока подгоняю методом подбора координат - муторно.

Kolyaj 04.06.2009 10:55

Цитата:

Сообщение от matana
Слово - это просто слово

Слово не является сущностью, сущностью является тег. Поэтому на слово нельзя повесить никаких событий.

B~Vladi 05.06.2009 10:02

Цитата:

Сообщение от matana
Можно ли его привязать не к странице, а к слову?

Немного не правельно поставлен вопрос. Если у тебя есть див (ect), то привязать к нему какие-либу данные можно в прямом смысле, т.е. как-то так:
var div=document.getElementById('id'); // как вариант
div.hint='текст подсказки';
// тут же вешаем обработчики на него, создаём узел подсказки со своим классом в этом же диве.

Это можно сделать в цикле, если таких элементов много.

B~Vladi 05.06.2009 10:06

А если тебе не нужно каких-либо эфффектов при появлении/скрытии подсказки, можно сделать ещё проще:

1. Использовать стандартную подсказку.
2. Сделать её на CSS(если необходим свой стиль отображения). Но тогда для совместимости это должна быть ссылка.

matana 06.06.2009 20:20

Кое-что поняла, спасибо, и даже сделала, но вариантов так много... Если еще есть варианты, поделитесь, пожалуйста.

Gvozd 06.06.2009 20:35

если тебе хочется еще вариантов, то держи:
1)можно все-таки кое-что сделать именно для слов. но надо делать вручную.
берем разбираем все textNode-элементы
их можно плучить например просмотрев все textNode-потомки каждого из тегов(document.getElementsByTagsName('*'))
в каждом из них регуляркой находим необходимые нам "слова" , и обрачиваем их в HTML-тег(например в SPAN), после чего на этот тег можно уже повесить свой скрипт(обработчик onmouseover,onmouseout,onmousemove) всплывающей подсказки
таким образом мы можем для всех "слов", котрые пожелаем сделать подсказку
в идеале этот скрипт может например принимать список пар "слово"->"подсказка", и сам разнесет эти подсказки по документу, либо по его части
в реализации такого скрипта вам понадобятся статьи:
http://javascript.ru/RegExp
http://javascript.ru/start/dom
http://javascript.ru/tutorial/basic/regular-expression

если появятся уточняющие вопросы, не освещенные в этих статьях, задавайте.
отвечу, либо дам ссылку на необходимый вам материал

B~Vladi 07.06.2009 04:13

Вобщем, если нужна тупо подсказка для чего-либо - юзаем стандартные вещи, если такой вариант не в кайф и нада всё это дело оформить - юзаем CSS это оч просто. Могу скинуть темповый вариант ;)

Riim 07.06.2009 11:50

Цитата:

Сообщение от B~Vladi
юзаем CSS это оч просто.

Т. е. вид стандартной подсказки можно через css настраивать?

B~Vladi 08.06.2009 14:55

Цитата:

Сообщение от Riim
Т. е. вид стандартной подсказки можно через css настраивать?

Конечно нет. Идея подсказки на CSS такая:
пишем примерно такую ссылку
<a href="#" class="link"><div>текст подсказки</div>текст ссылки</a>

В стилях пишем так
.link div{
  position:absolute;
  display:none;
  /* Далее идёт оформление самой подсказки */
}
.link:hover div{
  dosplay:block;
}

Оформлять это всё нужно через ссылку для ие6. Если не должна быть ссылка, можно оформить в div + behavior-скрипт для ие6. этот скрипт можно найти в нете. он учит ие понимать hover для остальных тегов.

Octane 08.06.2009 19:33

А ничего, что внутрь inline-элементов нельзя помещать блочные элементы?

B~Vladi 09.06.2009 14:06

нет, всё норм... это все прекрасно понимают:) еси не нрав - суй спан какие проблемы?!;) а в стилях уже поправишь что нада...

Octane 09.06.2009 19:28

Цитата:

Сообщение от B~Vladi (Сообщение 21306)
нет, всё норм... это все прекрасно понимают:) еси не нрав - суй спан какие проблемы?!;) а в стилях уже поправишь что нада...

Так а какие проблемы сразу правильный пример написать?

Цитата:

Сообщение от B~Vladi (Сообщение 21218)
.link:hover div{
  dosplay:block;
}

Тем более стили в любом случае нужны.

B~Vladi 10.06.2009 10:17

Цитата:

Сообщение от Octane
Так а какие проблемы сразу правильный пример написать?

привычка... редко спан использую...

Miranda 28.11.2010 21:39

Цитата:

Сообщение от Gvozd (Сообщение 20885)
а получить координаты элемента можно с помощью статьи

Доброго вам дня, ночи! Я совсем "Чайник", но очень нужна ваша помощь. Мне срочно надо научиться привязывать слово к ссылке. Как вот в сообщении - слово "статьи" привязано к ссылке на эту статью.
Пожалуйста, объясните как это сделать в Worde, чтобы в браузере всё выглядело пристойно.
Вот вроде бы кое, что поняла [url="http:/ адрес ссылки.....
но потом после слова "статьи" [/URL] [/quote] - это откуда берётся?

monolithed 28.11.2010 21:44

Цитата:

Сообщение от Miranda
Пожалуйста, объясните как это сделать в Worde

Причем тут Word (там есть функция вставить гиперссылку)? этот форум по JavaScript программированию

Цитата:

Сообщение от Miranda
Вот вроде бы кое, что поняла url=http:/ адрес ссылки.....
но потом после слова "статьи"

Это BB-codes

или это вам нужно?
text <a href="http://ya.ru"> ссылка </a>

Miranda 28.11.2010 21:59

Цитата:

Сообщение от monolithed (Сообщение 81284)
Причем тут Word (там есть функция вставить гиперссылку)? этот форум по JavaScript программированию



Это BB-codes

или это вам нужно?
text <a href="http://ya.ru"> ссылка </a>


Благодарю за ответ!!!! Буду пробовать разбираться :cray:


Часовой пояс GMT +3, время: 19:08.