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

HTML+CSS+JavaScript

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

 

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

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

тема: Как реализовать определение координат курсора по событию onclick ?
 
 автор: coloboc66   (30.01.2008 в 09:32)   письмо автору
 
 

И вывести их, к примеру в alert по этому же событию ?
Спасибо.

   
 
 автор: Crux   (30.01.2008 в 10:20)   письмо автору
 
   для: coloboc66   (30.01.2008 в 09:32)
 

<script language="JavaScript">
var mousex = 0;
var mousey = 0;

isDOM       = document.getElementById
isOpera     = isOpera5 = window.opera && isDOM
isOpera6    = isOpera && window.print
isOpera7    = isOpera && document.readyState
isMSIE      = document.all && document.all.item && !isOpera 
isMSIE5     = isDOM && isMSIE
isNetscape4 = document.layers
isMozilla   = isDOM && navigator.appName == "Netscape"
if(isNetscape4) document.captureEvents(Event.MOUSEMOVE);


if(isMSIE || isOpera7)
{
    document.onmousemove = function()
    {
        mousex = event.clientX + document.body.scrollLeft;
        mousey = event.clientY +  document.body.scrollTop;
    }
}
else if (isOpera)
    {
        document.onmousemove = function()
        {
            mousex = event.clientX;
            mousey = event.clientY;
        }
    }
else if (isNetscape4 || isMozilla)
{
    document.onmousemove = function(e)
    {
        mousex = e.pageX; 
        mousey = e.pageY;
    }
}
document.onclick = function()
{
    alert(mousex + " " + mousey);
}
</script>

   
 
 автор: coloboc66   (30.01.2008 в 11:02)   письмо автору
 
   для: Crux   (30.01.2008 в 10:20)
 

Млииин! Спасибо с глубоким уважением!!!
Все бы так отвечали...
Но тему прошу не закрывать.

   
 
 автор: bronenos   (30.01.2008 в 12:08)   письмо автору
 
   для: coloboc66   (30.01.2008 в 11:02)
 

document.onclick = function(e)
{
  e = e || window.event;
  alert(e.clientX + " * " + e.clientY);
}


и фсе!

   
 
 автор: coloboc66   (30.01.2008 в 13:05)   письмо автору
 
   для: bronenos   (30.01.2008 в 12:08)
 

И будет работать во всех броузерах?

   
 
 автор: coloboc66   (30.01.2008 в 13:54)   письмо автору
 
   для: coloboc66   (30.01.2008 в 13:05)
 

to bronenos: код Crux - a в опере, лисе и осле выдаёт одинаковые координаты. Ваш код в лисе ошибается от оперы и осла примерно на 55 пиксел по вертикали .

   
 
 автор: bronenos   (30.01.2008 в 14:16)   письмо автору
 
   для: coloboc66   (30.01.2008 в 13:54)
 

не беда
document.onclick = function(e) 

  e = e || window.event;
  var x = e.clientX + document.body.scrollLeft;
  var y = e.clientY + document.body.scrollTop;

  alert(x + " * " + y); 
}

и не будет

   
 
 автор: coloboc66   (30.01.2008 в 14:46)   письмо автору
 
   для: bronenos   (30.01.2008 в 14:16)
 

Эге - заработало, тоже благодарю.

   
 
 автор: coloboc66   (30.01.2008 в 16:57)   письмо автору
 
   для: coloboc66   (30.01.2008 в 14:46)
 

Почему div не устанавливается на место щелчка, вот странно:
document.onclick = function(e)  
{  
  e = e || window.event; 
  var x = e.clientX + document.body.scrollLeft; 
  var y = e.clientY + document.body.scrollTop; 
  alert(x + " * " + y);  
if(document.getElementById('prev_div'))document.body.removeChild(document.getElementById('prev_div'));
var prev_div=document.createElement('div');
prev_div.innerHTML="<a href='#'><li>Какой-то текст</a>";
prev_div.setAttribute('style','position:absolute;height:10;width:100;top:'+x+';left:'+y);
prev_div.setAttribute('id','prev_div');
document.body.appendChild(prev_div);
}

   
 
 автор: AlexSol   (30.01.2008 в 17:00)   письмо автору
 
   для: coloboc66   (30.01.2008 в 16:57)
 

в пикселях надо размеры писать

   
 
 автор: coloboc66   (30.01.2008 в 17:51)   письмо автору
 
   для: AlexSol   (30.01.2008 в 17:00)
 

Один хрен не выходит:
document.onclick = function(e)   
{   
  e = e || window.event;  
  var x = e.clientX + document.body.scrollLeft+'px';  
  var y = e.clientY + document.body.scrollTop+'px';   
if(document.getElementById('prev_div'))document.body.removeChild(document.getElementById('prev_div'));
var prev_div=document.createElement('a');
prev_div.innerHTML="текст";
prev_div.setAttribute('style','position:absolute');
prev_div.setAttribute('style','top:'+x+';left:'+y);
prev_div.setAttribute('id','prev_div');
prev_div.href='#';
document.body.appendChild(prev_div);
}

   
 
 автор: RMW   (30.01.2008 в 17:55)   письмо автору
 
   для: coloboc66   (30.01.2008 в 17:51)
 

Да и px надо не там ставить
prev_div.setAttribute('style','top:'+x+'px;left:'+y+'px');

   
 
 автор: bronenos   (30.01.2008 в 18:10)   письмо автору
 
   для: coloboc66   (30.01.2008 в 17:51)
 

Я бы предложил

var prev_div = document.getElementById("prev_div") || document.createElement('div');

   
 
 автор: RMW   (30.01.2008 в 17:52)   письмо автору
 
   для: coloboc66   (30.01.2008 в 16:57)
 

Мне тоже это казалось странным пока я икс с игреком местами не поменял)

   
 
 автор: coloboc66   (31.01.2008 в 10:07)   письмо автору
 
   для: RMW   (30.01.2008 в 17:52)
 

Да - это я опростоволосился... А можно сделать так, чтобы при движении курсора его координаты отображались в строке состояния?

   
Rambler's Top100
вверх

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