Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.12.2015, 14:31
Аспирант
Отправить личное сообщение для shurik_shink Посмотреть профиль Найти все сообщения от shurik_shink
 
Регистрация: 22.05.2015
Сообщений: 35

Реализация всплывающей подсказки
В интернете полно ресурсов как реализовать с помощью css, но все они статические. С этим проблем не возникло. Кому интересно неплохой demo с исходником http://ruseller.com/lessons.php?rub=2&id=664.

1. Подскажите, как создать всплывающую подсказку так чтобы окно с подсказкой для элемента на странице прорисовывалось относительно курсора мыши.
2. Можно ли обойтись без javascript, а только лишь средствами html и css.


Для примера, как реализовано на сайте(просто для примера): http://саженцы-виногра...0%D0%B0%D0%B4/
Если навести курсор на фото винограда появится описание в рамке которое перепрорисовывается при перемещении мыши.
К сожалению если скопировать код и сохранить в локальную страницу, то всплывающая подсказка не работает, видимо не подтягивается какой-то ресурс. Потому понять как там сделано до конца не получается.
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2015, 22:07
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от shurik_shink
2. Можно ли обойтись без javascript, а только лишь средствами html и css.
нет
Ответить с цитированием
  #3 (permalink)  
Старый 15.12.2015, 11:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от EmperioAf
нет
Ну по идее, на каждом элементе мон прорисовать свой курсор мыши, с нужной подсказкой...
Он будет двигаться в пределах элемента
Ответить с цитированием
  #4 (permalink)  
Старый 15.12.2015, 12:35
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Deff, ага, жесть конечно. Но зато без JS.

Только все равно нужно будет писать скрипт, который с атрибута будет брать текст и преобразовывать его в картинку, после чего подставлять как url (base64) в cursor.
Ответить с цитированием
  #5 (permalink)  
Старый 15.12.2015, 13:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ruslan_xDD,
Гм - ну а чисто скриншот подсказки прописать в css - ?
Если элементов немного - не критично
=============
//Есть и canvas преобразование текста или html в картинку html2canvas.js
Ответить с цитированием
  #6 (permalink)  
Старый 15.12.2015, 15:42
Интересующийся
Отправить личное сообщение для Sizz Lorr Посмотреть профиль Найти все сообщения от Sizz Lorr
 
Регистрация: 15.12.2015
Сообщений: 11

CSS через :after может делать всплывающую подсказку на блоке, ройте в направлении :hover:after ... там все очень просто ...
Ответить с цитированием
  #7 (permalink)  
Старый 16.12.2015, 11:43
Аспирант
Отправить личное сообщение для shurik_shink Посмотреть профиль Найти все сообщения от shurik_shink
 
Регистрация: 22.05.2015
Сообщений: 35

Частично решил проблему

Для задания координат подсказки для элементов div на все div с name="div2" навешивается Listener который вызывает функцию mousemove_xy в которой собственно и задаются координаты бокса с текстом подсказки.

Но в моем случае, для того чтобы получить handle всплывающей подсказки я испольую его id. И пока у меня только один элемент div и один <span id="span2"> на странице.

<div id="div2" name="div2" class="div1 photo">
<img src="saperavi-severnyj-250x383.jpg" class="img1"/>
<span id="span2">Сорт винограда 'Саперави северный'</span>
</div>



<script>
var divs=document.getElementsByName("div2");
for (i=0; i<divs.length; i++){
	divs[i].addEventListener("mousemove", mousemove_xy);
}
 
function mousemove_xy(event){
var item2 = document.getElementById("span2");		
item2.style.left=event.offsetX+10;
item2.style.top=event.offsetY+10;
}
</script>



Как определить для какого div выполняется функция - что бы потом определить просто дочерний span, а не искать его по id?

Полагаю нужно использовать оператор this, но как не понятно

Напрямую span = this.getElementById("span2"); не работает
Ответить с цитированием
  #8 (permalink)  
Старый 16.12.2015, 12:42
Интересующийся
Отправить личное сообщение для Sizz Lorr Посмотреть профиль Найти все сообщения от Sizz Lorr
 
Регистрация: 15.12.2015
Сообщений: 11

function hide(e) 
{
  e.target.style.visibility = 'hidden';
}
list.addEventListener('click', hide, false);


e.target - вот сюда )))
Через CSS делать не стал?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стиль подсказки в CSS фонарик Общие вопросы Javascript 2 08.09.2015 04:51
Нестандартные всплывающие подсказки. Нужна конструктивная критика! Zuenf Ваши сайты и скрипты 12 10.03.2013 16:42
Картинка в виде всплывающей подсказки abc_ua Оффтопик 20 03.04.2012 16:32
скрипт всплывающей подсказки kent666 Events/DOM/Window 0 03.11.2011 17:59
Всплывающие подсказки в IE arseniy-at-home Элементы интерфейса 8 27.07.2009 16:13