JavaScript Определение координат объектов и указателя мыши

Продолжаю составлять список JavaScript функции, которыми я часто пользуюсь. Ниже приведены функции для определения координат объектов страницы и положения курсора мыши. http://www.tigir.com/javascript.htm

  1.  
  2. function getPageEventCoords(evt)
  3. {
  4. if (!evt) evt = window.event;
  5.  
  6. var coords = {left:0, top:0};
  7. if (evt.pageX)
  8. {
  9. coords.left = evt.pageX;
  10. coords.top = evt.pageY;
  11. }
  12. else if (evt.clientX)
  13. {
  14. coords.left = evt.clientX + document.body.scrollLeft - document.body.clientLeft;
  15. coords.top = evt.clientY + document.body.scrollTop - document.body.clientTop;
  16. if (document.body.parentElement && document.body.parentElement.clientLeft)
  17. {
  18. var bodParent = document.body.parentElement;
  19. coords.left += bodParent.scrollLeft - bodParent.clientLeft;
  20. coords.top += bodParent.scrollTop - bodParent.clientTop;
  21. }
  22. }
  23. return coords;
  24. }
  25.  
  26. function getElementPosition(elemId)
  27. {
  28. var elem = typeof elemId == 'object' ? elemId : document.getElementById(elemId);
  29.  
  30. var w = elem.offsetWidth;
  31. var h = elem.offsetHeight;
  32.  
  33. var l = 0;
  34. var t = 0;
  35.  
  36. while (elem)
  37. {
  38. l += elem.offsetLeft;
  39. t += elem.offsetTop;
  40. elem = elem.offsetParent;
  41. }
  42.  
  43. return {"left":l, "top":t, "width": w, "height":h};
  44. }
  45.  
  46. function mousePageXY(e)
  47. {
  48. var x = 0, y = 0;
  49.  
  50. if (!e) e = window.event;
  51.  
  52. if (e.pageX || e.pageY)
  53. {
  54. x = e.pageX;
  55. y = e.pageY;
  56. }
  57. else if (e.clientX || e.clientY)
  58. {
  59. x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)
  60. - document.documentElement.clientLeft;
  61. y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop)
  62. - document.documentElement.clientTop;
  63. }
  64.  
  65. return {"left":x, "top":y};
  66. }
  67.  
  68.  

Читайте в блоге

PHP. Преобразование таблицы в картинку. Создание информеров.
Разноцветное облако ссылок
Рисуем график на PHP
Oracle. Преобразование даты в unix timestamp
Установка собственного OpenID сервера phpMyID

Метки: js javascript

Комментарии:

Войдите на сайт, чтобы оставить комментарий