Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > работа с мышью


Автор: MrDmitry 10.6.2009, 15:12
народ помогите. есть вот такой код.

Код

<script>
 mX=0;
 mY=0;

$= function(id){return document.getElementById(id);}
  function posit(e){
    e=e||window.event;
    mX = e.clientX;
    mY = e.clientY;
    $("memo").innerHTML="\n"+"Позиция X= "+mX+" Позиция Y= "+mY;} 
  
  function load(){
  document.body.onmousemove=posit;}

</script>
  <body onmousedown="load()" style="width:100%;height:100%;padding:0px;margin:0px;">

но нужно его доработать так чтобы при нажатие на кнопку мыши он начел еще отсчитывать координаты мыши с места щелчка (то есть там где был произведен щелчек мыши координаты становились 1,1)

Автор: Soah 10.6.2009, 15:21
Цитата(MrDmitry @  10.6.2009,  15:12 Найти цитируемый пост)
но нужно его доработать так чтобы при нажатие на кнопку мыши он начел еще отсчитывать координаты мыши с места щелчка (то есть там где был произведен щелчек мыши координаты становились 1,1)

поподробнее можно?

Код

<script>
 mX=0;
 mY=0;

 cx = 0;
 cy = 0;

$= function(id){return document.getElementById(id);}
  function posit(e){
    e=e||window.event;
    mX = e.clientX - cx;
    mY = e.clientY - cy;
    $("memo").innerHTML="\n"+"Позиция X= "+mX+" Позиция Y= "+mY;} 
  
  function load(e){
    e=e||window.event;
    cx = e.clientX;
    cy = e.clientY;
  document.body.onmousemove=posit;}

</script>
  <body onmousedown="load(event)" style="width:100%;height:100%;padding:0px;margin:0px;">

так?

Автор: MrDmitry 10.6.2009, 15:28
нет. нужно чтоб координаты считались с 1 с места где я нажму мышкой  и до места где я отпущу мышку

Автор: Soah 10.6.2009, 16:02
Цитата(MrDmitry @  10.6.2009,  15:28 Найти цитируемый пост)
нужно чтоб координаты считались с 1 с места где я нажму мышкой  и до места где я отпущу мышку


MrDmitry, допустим мы нашли координаты(например left:20, top: 15, right: 100, bottom: 150), дальше что?

Кстати, если в начале будет (x:100, y: 150), потом (x: 30, y: 200), что тогда?

Автор: MrDmitry 10.6.2009, 17:28
Цитата(Soah @ 10.6.2009,  16:02)
Цитата(MrDmitry @  10.6.2009,  15:28 Найти цитируемый пост)
нужно чтоб координаты считались с 1 с места где я нажму мышкой  и до места где я отпущу мышку


MrDmitry, допустим мы нашли координаты(например left:20, top: 15, right: 100, bottom: 150), дальше что?

Кстати, если в начале будет (x:100, y: 150), потом (x: 30, y: 200), что тогда?

вот смотри.
водим мы мышкой по страницы и определяются координаты
допустим на координатах x150 y300 мы остановились нажали кнопку мыши
нужно чтоб например другая переменная стала nX=1 nY=1
и затем если мы не отпуская кнопку поведем мышку эти переменные наращивались. тоесть если введем мыш по оси x то увеличивалсь переменная nX если по оси Y то соотвенно увеличивалась переменная nY. 
Фиг знает как объяснить человеческим языком smile

Автор: Soah 10.6.2009, 18:14
Код

<script>
 mX=0;
 mY=0;

 cx = 0;
 cy = 0;

$= function(id){return document.getElementById(id);}
  function posit(e){
    e=e||window.event;
    mX = e.clientX - cx;
    mY = e.clientY - cy;
    $("memo").innerHTML="\n"+"Позиция X= "+mX+" Позиция Y= "+mY;} 
  
  function load(e){
    e=e||window.event;
    cx = e.clientX;
    cy = e.clientY;
  }

</script>
  <body onmousedown="load(event)" style="width:100%;height:100%;padding:0px;margin:0px;" onmousemove="posit(event)">

разве этот код не так работает?

Может если напишете для чего вам это надо, то станет яснее.

Автор: youri 10.6.2009, 18:16
в onclick нужно запоминать позицию, а не в onload

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)