Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: текст рядом с мышкой
 
 автор: ChieFSS   (29.10.2006 в 00:03)   письмо автору
 
 

как сделать текст рядом с мышькой, но не через title или alt, а как-то по другому чтобы текст перемещался вместе с мышькой

   
 
 автор: ChieFSS   (29.10.2006 в 00:34)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 00:03)
 

ну всплывающая подсказка рядом с курсором при наведении на ссылку
как сделать?

   
 
 автор: targa   (29.10.2006 в 01:12)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 00:34)
 

Делаете div, в него пишете нужный текст, сам див прячете (display: none; z-index: 100; position: absolute;).
Нужному элементу цепляете обработчики onmouseover и onmouseout.
По onmouseover определяете координаты элемента, вычисляете положение вашего дива с подсказкой, позиционируете его, показываете (display: block);
По onmouseout просто прячете див (display: none;).

Ну вот примерно так :) Примеры на форуме выкладывали. Там ссылка на сайт с примерами (очень хорошими) на JS.

   
 
 автор: Lelik   (29.10.2006 в 01:35)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 00:03)
 

для решения подобной задачи есть событие мыши onMouseMove, благодаря ему фиксируйте положение координаты мыши и поступаете как описано в посте за (29.10.2006 в 01:12)

   
 
 автор: ChieFSS   (29.10.2006 в 02:07)   письмо автору
 
   для: Lelik   (29.10.2006 в 01:35)
 

Да я б сделал еслибы jav'у знал. Я её вообще незнаю.
Мне от неё надо только эту штуку.. на изучение просто времени нету.
Мож есть у кого-нить недолеко скрипт этой штуки? В коде то я разберусь и подспралю что под себя

   
 
 автор: Lelik   (29.10.2006 в 02:09)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 02:07)
 

скрипт был, ща найду и выложу

   
 
 автор: Lelik   (29.10.2006 в 02:14)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 02:07)
 


<html>
<head>
<script>
function moveDiv()
   {
      if(document.getElementById("doc").scrollTop > 0)
         {
            document.getElementById("dv").style.left = event.clientX;
            document.getElementById("dv").style.top = (event.clientY + document.getElementById("doc").scrollTop);
         }
      else
         {
            document.getElementById("dv").style.left = event.clientX;
            document.getElementById("dv").style.top = event.clientY;
         }
      
   }
   
function divStartPos()
   {
      if(document.getElementById("doc").scrollTop > 0)
         {
            document.getElementById("dv").style.left = event.clientX;
            document.getElementById("dv").style.top = (event.clientY + document.getElementById("doc").scrollTop);
         }
      else
         {
            document.getElementById("dv").style.left = event.clientX;
            document.getElementById("dv").style.top = event.clientY;
         } 
   }
</script>
</head>
<body id="doc" onLoad="divStartPos()" onMouseMove="moveDiv()" onScroll="moveDiv()">
<div id="dv" style="position:absolute; left:0; top:0; height:120; width:126; z-index:2;">
</div>
</body>
</html>


если чего не так, обращайся, доработаем.

   
 
 автор: Lelik   (29.10.2006 в 02:16)   письмо автору
 
   для: Lelik   (29.10.2006 в 02:14)
 

ну этот скрип по-мойму только под ИЕ

   
 
 автор: ChieFSS   (29.10.2006 в 10:42)   письмо автору
 
   для: Lelik   (29.10.2006 в 02:14)
 

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

   
 
 автор: Lelik   (29.10.2006 в 13:40)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 10:42)
 

а ну подробней, а то я чего-то не понял

   
 
 автор: ChieFSS   (29.10.2006 в 16:02)   письмо автору
 
   для: Lelik   (29.10.2006 в 13:40)
 

во лянь как тут http://www.freelance.ru/
слева вверху в меню, когда наводишь на тект, то описание вылезает не просто где курсор был, а оно ещё и двигается рядом с курсором

   
 
 автор: Lelik   (29.10.2006 в 16:56)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 16:02)
 

теперь понял :), я ближе к ночи скрипт выложу.

   
 
 автор: ChieFSS   (29.10.2006 в 17:41)   письмо автору
 
   для: Lelik   (29.10.2006 в 16:56)
 

Зарание спасибо :)

   
 
 автор: Lelik   (29.10.2006 в 18:25)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 16:02)
 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Всплывающая подсказка</title>
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="no-cache">
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
body {margin:0; padding: 0 0 0 5px;}
#dv{ display:none;}
</style>
<script language="javascript">
<!--
d = document;
x = 0;
y = 0;
d.onmousemove = function(e){
   x = (d.all) ? event.clientX : e.pageX;
   y = (d.all) ? event.clientY : e.pageY;
   return x, y;  
}
function moveDiv(text) 
   { 
      if(d.body.scrollTop > 0) 
         { 
            d.getElementById("dv").style.left = x;
            d.getElementById("dv").style.top = (y+5) + d.body.scrollTop; 
            d.getElementById("dv").style.display = 'inline';
         } 
      else 
         { 
            d.getElementById("dv").style.left = x; 
            d.getElementById("dv").style.top = (y+5);  
            d.getElementById("dv").style.display = 'inline';
         } 
      d.getElementById("dv").innerHTML = text; 
   }
function hideDv(){
   d.getElementById("dv").style.display = 'none';
}
//-->
</script>
</head>
<body>
<a href="#" onMouseMove="moveDiv('first')" onMouseOver="moveDiv('first')" 
onMouseOut="hideDv()">anchor 1</a><br>
<a href="#" onMouseMove="moveDiv('second')" onMouseOver="moveDiv('second')" 
onMouseOut="hideDv()">anchor 2</a><br>
<a href="#" onMouseMove="moveDiv('third')" onMouseOver="moveDiv('third')" 
onMouseOut="hideDv()">anchor 3</a><br>
<!-- Можно получить значение из титла данной ссылки или любого другого
атрибута используя attributes[необходимый_атрибут].value -->
<a href="#" onMouseMove="moveDiv(this.attributes['title'].value)" 
onMouseOver="moveDiv(this.attributes['title'].value)" onMouseOut="hideDv()" title="value 4">
anchor 4</a><br>
<div id="dv" 
style="position:absolute; left:0; top:0; height:auto; width:auto; z-index:2; background-color:#CCCCCC; padding: 2px 2px 2px 15px;"> 
</div>
</body>
</html>


минусы:
для полноценной работы необходимо прописывать в каждой ссылке действия на три события
плюсы:
можно поставить только для необходимых ссылок, ибо для всех ссылок - это перебор

   
 
 автор: Lelik   (29.10.2006 в 18:32)   письмо автору
 
   для: Lelik   (29.10.2006 в 18:25)
 

если необходимо, могу доработать для действия под определенные ИД ссылок

   
 
 автор: ChieFSS   (29.10.2006 в 19:44)   письмо автору
 
   для: Lelik   (29.10.2006 в 18:25)
 

я так понял чтобы появлялся текст надо ссылку делать такого вида <a href="#" onMouseMove="moveDiv('first')" onMouseOver="moveDiv('first')"
onMouseOut="hideDv()">anchor 1</a>

я думаю можно вместо first подставить переменную из php с первичным значением ссылки (id ссылки) и по id выводить текст из другого поля ?

>если необходимо, могу доработать для действия под определенные ИД ссылок
я думаю ненадо т.к. у меня движок id ссылок сам расставляет и невозможно узнать какой id был, будет и на какой он изменится

За скрипт огромное спасибо

   
 
 автор: Lelik   (29.10.2006 в 20:44)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 19:44)
 

>я так понял чтобы появлялся текст надо ссылку делать такого вида <a href="#" onMouseMove="moveDiv('first')" onMouseOver="moveDiv('first')"
>onMouseOut="hideDv()">anchor 1</a>
>
вместо first необходимо ставит текст, который будет выводиться как подсказка

<a href="#" onMouseMove="moveDiv('текст подсказка')" onMouseOver="moveDiv('текст подсказка')"  onMouseOut="hideDv()">anchor 1</a>

   
 
 автор: ChieFSS   (29.10.2006 в 20:47)   письмо автору
 
   для: Lelik   (29.10.2006 в 20:44)
 

ну значит вместо них можно вставить переменные из php, а это радует.. спасибо

   
 
 автор: Lelik   (29.10.2006 в 20:59)   письмо автору
 
   для: ChieFSS   (29.10.2006 в 20:47)
 

да, присваивай переменным текст подсказки:

<?php
$help_1 
"Help text 1";
$help_2 "Help text 2";
echo 
'<a href="#" onMouseMove="moveDiv('.$help_1.')" onMouseOver="moveDiv('.$help_1.')"  onMouseOut="hideDv()">anchor 1</a>';
echo 
"\n<br>";
echo 
'<a href="#" onMouseMove="moveDiv('.$help_2.')" onMouseOver="moveDiv('.$help_2.')"  onMouseOut="hideDv()">anchor 1</a>';
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования