javascript tooltip (всплывающая подсказка)Всплывающая подсказка - довольно важный элемент оформления современного web сайта. А если ее еще красиво оформить и не злоупотреблять применением...Перейду сразу к делу:
var d = document;
var offsetfromcursorY=15 // y offset of tooltip
var ie=d.all && !window.opera;
var ns6=d.getElementById && !d.all;
var tipobj,op;
function tooltip(el,txt) {
tipobj=d.getElementById('mess');
tipobj.innerHTML = txt;
op = 0.1;
tipobj.style.opacity = op;
tipobj.style.visibility="visible";
el.onmousemove=positiontip;
appear();
}
function hide_info(el) {
d.getElementById('mess').style.visibility='hidden';
el.onmousemove='';
}
function ietruebody(){
return (d.compatMode && d.compatMode!="BackCompat")? d.documentElement : d.body
}
function positiontip(e) {
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
var winwidth=ie? ietruebody().clientWidth : window.innerWidth-20
var winheight=ie? ietruebody().clientHeight : window.innerHeight-20
var rightedge=ie? winwidth-event.clientX : winwidth-e.clientX;
var bottomedge=ie? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY;
if (rightedge < tipobj.offsetWidth) tipobj.style.left=curX-tipobj.offsetWidth+"px";
else tipobj.style.left=curX+"px";
if (bottomedge < tipobj.offsetHeight) tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
else tipobj.style.top=curY+offsetfromcursorY+"px";
}
function appear() {
if(op < 1) {
op += 0.1;
tipobj.style.opacity = op;
tipobj.style.filter = 'alpha(opacity='+op*100+')';
t = setTimeout('appear()', 30);
}
}
В теле страницы должен присутствовать div с visibility="hidden" и position="absolute". Конечно, его можно создавать динамически,
но это я оставляю на ваше усмотрение, как, собственно, и его оформление. Использовать tooltip нужно так:
<h2 onmouseover="tooltip(this,'Это просто пример всплывающей<br /> подсказки JavaScript!')" onmouseout="hide_info(this)"> It is just JavaScript Tooltip example!</h2>Разберем немного javascript код:
примернаведите мышь на текст нижеIt is just JavaScript Tooltip example!Применять можно абсолютно ко всем элементам. Заметьте также, что ничего не мешает нам использовать html теги в тексте подсказки.
Комментарии:kee90@mail.ru 19.10.08 13:56 Класс! Только мне что-то не удаётся вставить себе на страницу. Можно чуть подоходчивее? Для умов средних? :-) iCanary 10.11.08 10:14 классная подсказочка, НО! как вставить ссылку в подсказку? у меня не получается.. портится вызов функции.. Andrey 12.11.08 17:48 2 iCanary Вставить-то ссылку можно (используй в ссылке вместо двойных кавычек одинарные) только какой от нее толк? Все равно мышкой не торкнешь ее! :-) Авторам статьи два балла за раскрытие статьи (можно было бы и по подробней написать). anonymous 09.12.08 02:24 Автору статьи спасибо. И вообще ресурс очень хороший. Код понятный, поэтому самому разобрать принцип работы достаточно просто. Salamandra 08.04.09 18:56 Всем салют. Я вот в создании сайтов на жвижке LDE новичёч, и вот какая у меня проблема. Я не знаю куда надо вписать этот скрипт? Я пользуюсь Dreamweaver CS3 т что-то получается, а вот куда скрепты устанавливать я ни как не могу понять( Если не трудно, то могли бы вы мне подробно рассказать что куда пихать? anonymous 21.04.09 12:19 А зачем ты вообще полез создавать сайты не зная даже самый простых вещей? froex 21.04.09 22:51 ИМХО, надо смотреть код этой страницы, если не знаете, как разместить что-то someone 21.05.09 20:40 Хм. Скопировала .js, созала div как описывалось. Посказка появляется но не позицинируется относительно курсор мышки( Причем сама функция positiontip задействуется, но что-то ничего не меняет =( mt 21.06.09 15:59 Спасибо огромное, все отлично работает :) gaga 06.07.09 19:02 Непонятно, как использовать данный скрипт... Где и как выглядит элемент с id='mess'? У меня скрипт не работает, IE выдаёт ошибку, в остальных браузерах ничего не происходит. Arris 31.07.09 05:05 А если еще и на jQuery переписать - так вообще будет коротко. Pahen 30.12.09 02:17 Спасибо огромное отлично работает!! Супер... Antony 31.12.09 03:50 Спасибо за пример. Использовал на своем сайте. hellobody 15.01.10 00:24 Привет! Не работает перемещение подсказки. Подскажите в чем может быть причина? hellobody 15.01.10 20:57 Юзать так! Наблюдатель 10.02.10 13:10 скрипт который опубликован, неработоспособен в сафари и хроме между прочим. Подсказка-пример позиционируется не такой функцией :-))))))) Наблюдатель 10.02.10 15:57 Перед применением каких то встроенных в хтмл объекты методов советую проверять их не таким образом: ( document.getElementById && !document.all ) или ( document.all && !window.opera ) или еще каким то образом, а проверять есть ли такой метод который вам нужен. Напрмер вот так: Alek Veritov 11.02.10 18:49 to Наблюдатель: Flash 14.03.10 13:41 Народ у меня проблема с этим скриптом: Flash 14.03.10 17:00 Все окей, разабрался! Спасибо за скрипт! Саша 14.07.10 08:58 Работает очень хорошо idkvik@gmail.com 16.10.10 23:04 Люди! Все Ваши комментарии посмотрел почитал: Санек 21.10.10 13:58 Работает отлично! Хочется узнать как можно сделать на сайте чтобы эти всплывающие подсказки указывали что надо делать на сайте!?? т.е. НАПРИМЕР человек попал на сайт, и всплывающая подсказка указала на поле для "регистрациии", когда человек перешел на страницу регистрации такаяже подсказка указала что делать дальше! toff 22.10.10 13:30 Все прикрасно работает!Если кто-то не соображает в html-програмировании,и руки не из того места откуда надо,то нечего заниматься созданием сайтов.Сначала учите язык! Newpassible 08.01.11 12:03 При наведении на сам текст, вместо подсказки появляется новое окно с белым фоном, объясните, в чём проблема?! х) Дмитрий 13.02.11 18:25 Но почему! когда помещаешь в подсказку кроме текста - html теги, происходит подергивание блока с подсказкой? Виктор 13.02.11 19:21 Дмитрий, *** 14.02.11 23:09 <div Style="visibility: hidden; position: absolute" id="mess"></div> Антон 11.05.11 14:44 Все работает. Спасибо. Дмитрий 11.08.11 21:51 Спасибо за простой, понятный, работающий скрипт. Paintmonster 11.10.11 09:16 Все отлично работает! Спасибо! Не разжевано, но хорошо! Макс, do-zapravka.ru 19.10.11 21:19 Спасибо за отличную статью. Андрей 30.10.11 15:21 Интересная статья! кстати если кому интересно есть еще способ на jQuery на http://sitemaker.x10.bz/articles.php?id=12 Юрий 08.11.11 06:53 Работает почти хорошо. При изменении разрешения экрана меняется позиция подсказки. Скажи как сделать так, чтобы всегда одинаково подсказка выскакивала, прямо под курсором? Михаил 08.12.11 10:24 Спасибо огромное за скрипт. Все просто и понятно. Если вам помогла или просто понравилась эта статья вы можете отблагодарить автора кликнув по рекламе. Спасибо! комментировать:
прежде чем писать комментарий убедитесь, пожалуйста, что он не попадает в нижеследующие категории:
прямые оскорбления кого бы то ни было будут удалятся! от кого: |


