Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2017, 10:12
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Позиционирование всплывающей подсказки
Добрый день. Есть всплывающая подсказка вида:
<a href="#" class="ret screentip">ссылка
<span id="texts">Подсказка</span>
</a>

И стили
<style>
.screentip{
	position: relative; /* позиционируем */
	display: inline-block;
	background: #eaeaea;
	color: #232323;
	text-decoration: none;
	cursor: help;
	outline: none;
}
.screentip span{
	position: absolute; /* позиционируем */
	z-index: 999; /* выдвигаем на передний план */
	visibility: hidden; /* временно скрываем */
	left: 50%;
	bottom: 30px;
	top: 30px;
	margin-left: -127px;
}
.screentip:hover{
	border: 0; /* используем если необходим IE6 fix */
	position:relative;
	z-index: 9999;
}
.screentip:hover span{
	visibility: visible; /* отображаем подсказку */
}
</style>


Как при помощи js сделать, чтобы подсказка не выходила за поля браузера, то есть в зависимости от расположения на экране, подсказка меняет значение margin-left и top.
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2017, 10:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Янковиц,
в пределах видимости
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2017, 10:25
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Здорово, вот бы еще, чтобы ссылка была вида site.ru
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2017, 11:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Янковиц
чтобы ссылка была вида site.ru
вы о чём?
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2017, 12:19
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

В общем, решил попробовать свой скрипт. Подскажите, уважаемые js знатоки, с точки зрения адекватности, нормально ли такой скрипт?
<script>
window.addEventListener('mouseover', function(e) {
  var width = e.pageX;
  var height = e.pageY;
  var top = height - 250;
  var left = width - 250;
  if ( height < 250 ){
      document.getElementsByTagName('span')[0].style.top="30px";
  } else if ( height > top ) {
      document.getElementsByTagName('span')[0].style.bottom="30px";
  }
  if ( width < 250 ){
      document.getElementsByTagName('span')[0].style.left="125px";
  } else if ( width > left ) {
      document.getElementsByTagName('span')[0].style.right="125px";
  }
}, false);
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2017, 12:21
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Осталось сделать срабатывание на наведение ссылки (ссылок может быть несколько и добавление стилей нужно сделать только к тем span, которые в активном теге a). Подскажете как сделать?
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2017, 13:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Янковиц,
зачем нужны строки 5 и 6, а также условия на их основе в строках 9 и 14?
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2017, 15:06
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Если позиция курсора в html поле по оси "y" менее 250 пикселей, то располагаем блок span под ссылкой, если более 250px, то над ссылкой. Идет проверка по осям икс и игрек.

Последний раз редактировалось Янковиц, 05.04.2017 в 15:08.
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2017, 15:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Янковиц,

попробую ещё раз обьяснить

else if ( height > top )
else if ( width > left ) отмеченное красным ненужная проверка и строки ниже ненужны

var top = height - 250;
var left = width - 250;


возможно вы хотели что-то иное
Ответить с цитированием
  #10 (permalink)  
Старый 05.04.2017, 15:28
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Я имею в виду, что если ссылка с подсказкой находится к примеру в левом верхнем углу, то подсказку смещаем на определенное количество пикселей вправо и вниз. И так по всем сторонам.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация всплывающей подсказки shurik_shink Элементы интерфейса 7 16.12.2015 12:42
Фон в виде карты и плавное позиционирование Сергей О. Элементы интерфейса 5 15.02.2013 10:46
Картинка в виде всплывающей подсказки abc_ua Оффтопик 20 03.04.2012 16:32
Как ограничить абсолютное позиционирование верхней границей окна браузера? javascript_pupil (X)HTML/CSS 1 03.03.2012 17:48
скрипт всплывающей подсказки kent666 Events/DOM/Window 0 03.11.2011 17:59