UNPKG

ahooks

Version:
73 lines (72 loc) 2.26 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _useRafState3 = _interopRequireDefault(require("../useRafState")); var _useEventListener = _interopRequireDefault(require("../useEventListener")); var _domTarget = require("../utils/domTarget"); var initState = { screenX: NaN, screenY: NaN, clientX: NaN, clientY: NaN, pageX: NaN, pageY: NaN, elementX: NaN, elementY: NaN, elementH: NaN, elementW: NaN, elementPosX: NaN, elementPosY: NaN }; var _default = exports["default"] = function _default(target) { var _useRafState = (0, _useRafState3["default"])(initState), _useRafState2 = (0, _slicedToArray2["default"])(_useRafState, 2), state = _useRafState2[0], setState = _useRafState2[1]; (0, _useEventListener["default"])('mousemove', function (event) { var screenX = event.screenX, screenY = event.screenY, clientX = event.clientX, clientY = event.clientY, pageX = event.pageX, pageY = event.pageY; var newState = { screenX: screenX, screenY: screenY, clientX: clientX, clientY: clientY, pageX: pageX, pageY: pageY, elementX: NaN, elementY: NaN, elementH: NaN, elementW: NaN, elementPosX: NaN, elementPosY: NaN }; var targetElement = (0, _domTarget.getTargetElement)(target); if (targetElement) { var _targetElement$getBou = targetElement.getBoundingClientRect(), left = _targetElement$getBou.left, top = _targetElement$getBou.top, width = _targetElement$getBou.width, height = _targetElement$getBou.height; newState.elementPosX = left + window.pageXOffset; newState.elementPosY = top + window.pageYOffset; newState.elementX = pageX - newState.elementPosX; newState.elementY = pageY - newState.elementPosY; newState.elementW = width; newState.elementH = height; } setState(newState); }, { target: function target() { return document; } }); return state; };