Javascript.RU

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

Скрипт с всплывающими подсказками.
Серьезно, наверное, это мой последний вариант. Нужна помощь. Есть готовый скрипт, реализующий всплывающие подсказки для ячеек таблицы. Такая вот лабораторная попалась, скрипт нашла в гугле, Все прекрасно работает, но препод требует объяснить, каким образом. Так вышло, что я ничего в этом не понимаю - собственно, экономисту и не нужно, жаль, деканат так не считает. В общем, пожалуйста, прокомментируйте каждую строчку кода. Что, как и зачем нужен каждый элемент...я серьезно больше не знаю, куда писать и к кому обращаться. Для вас это, наверное, будет пустяком, а мне спасет сессию. Благодарна буду безмерно. Собственно, скрипт:


<script>

var showingTooltip;

document.onmouseover = function(e)
{
var target = e.target;

var tooltip = target.getAttribute('data-tooltip');

if (!tooltip) return;

var tooltipElem = document.createElement('div');

tooltipElem.className = 'tooltip';

tooltipElem.innerHTML = tooltip;

document.body.appendChild(tooltipElem);

var coords = target.getBoundingClientRect();

var left = coords.left + (target.offsetWidth - tooltipElem.offsetWidth) / 2;

if (left < 0) left = 0; // не вылезать за левую границу окна

var top = coords.top - tooltipElem.offsetHeight - 5;

if (top < 0) { // не вылезать за верхнюю границу окна

top = coords.top + target.offsetHeight + 5;
}

tooltipElem.style.left = left ;

tooltipElem.style.top = top ;

showingTooltip = tooltipElem;
};

document.onmouseout = function(e)
{
if (showingTooltip)
{
document.body.removeChild(showingTooltip);

showingTooltip = null;
}

};

</script>
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2018, 01:16
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

Я не уверен в том, насколько подробные объяснения вам нужны. Примерно так думаю должно быть лучше понятно:

var showingTooltip; // Создадим переменную, в которой будет храниться подсказка

document.onmouseover = function(e){ // при событии "наведение мыши" запускаем анонимную функцию
var target = e.target; // Записываем в переменную target тот элемент, на который наведена мышь

var tooltip = target.getAttribute('data-tooltip'); // Записываем в переменную содержимое data-tooltip, того элемена, на который наведена мышь
if (!tooltip) return; // Если содержимого data-tooltip нет, то ничего не делаем (буквально возвращаем ничего)
// В противном случае:
var tooltipElem = document.createElement('div'); // Создаем новый элемент <div></div>
tooltipElem.className = 'tooltip'; // Устанавливаем элементу класс - class="tooltip"
tooltipElem.innerHTML = tooltip; // Внутрь элемента помещаем содержимое атрибута data-tooltip
document.body.appendChild(tooltipElem); // Вставляем этот элемент на страницу

var coords = target.getBoundingClientRect(); // Получаем в coords все CSS стили элемента, на который наведена мышь

var left = coords.left + (target.offsetWidth - tooltipElem.offsetWidth) / 2; // запишем нужные координаты по горизонтали
if (left < 0) left = 0; // не вылезать за левую границу окна

var top = coords.top - tooltipElem.offsetHeight - 5; // запишем нужные координаты по вертикали
if (top < 0) { top = coords.top + target.offsetHeight + 5; } // не вылезать за верхнюю границу окна

tooltipElem.style.left = left ; // применить к подсказке координаты по горизонтали
tooltipElem.style.top = top ; // применить к подсказке координаты по вертикали

showingTooltip = tooltipElem; // записать в переменную showingTooltip готовую подсказку
};


document.onmouseout = function(e) { // При событии "мышь ушла с элемента", запускаем анонимную функцию
if (showingTooltip) { // Если на странице уже имеется подсказка, то...
document.body.removeChild(showingTooltip); // удаляем ее из DOM (со страницы)
showingTooltip = null; // очищаем переменную, в которой хранилась подсказка
}

};
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2018, 09:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

Повышает читаемость кода:
http://jsbeautifier.org/
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как скопировать скрипт с переадресующей страници ramisa Элементы интерфейса 9 09.07.2013 23:59
Скрипт в скрипт :) Sakyra Общие вопросы Javascript 6 22.05.2013 09:58
Не работает скрипт :( VladimirV Javascript под браузер 5 21.12.2010 14:26
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07