* @function Events.prototype.getMousePosition * @description 获取当前鼠标的位置。 * @param {Event} evt - 事件对象。 * @returns {Pixel} 当前的鼠标的 xy 坐标点。
(evt)
| 447 | * @returns {Pixel} 当前的鼠标的 xy 坐标点。 |
| 448 | */ |
| 449 | getMousePosition(evt) { |
| 450 | if (!this.includeXY) { |
| 451 | this.clearMouseCache(); |
| 452 | } else if (!this.element.hasScrollEvent) { |
| 453 | Event.observe(window, "scroll", this.clearMouseListener); |
| 454 | this.element.hasScrollEvent = true; |
| 455 | } |
| 456 | |
| 457 | if (!this.element.scrolls) { |
| 458 | var viewportElement = Util.getViewportElement(); |
| 459 | this.element.scrolls = [ |
| 460 | viewportElement.scrollLeft, |
| 461 | viewportElement.scrollTop |
| 462 | ]; |
| 463 | } |
| 464 | |
| 465 | if (!this.element.lefttop) { |
| 466 | this.element.lefttop = [ |
| 467 | (document.documentElement.clientLeft || 0), |
| 468 | (document.documentElement.clientTop || 0) |
| 469 | ]; |
| 470 | } |
| 471 | |
| 472 | if (!this.element.offsets) { |
| 473 | this.element.offsets = Util.pagePosition(this.element); |
| 474 | } |
| 475 | |
| 476 | return new Pixel( |
| 477 | (evt.clientX + this.element.scrolls[0]) - this.element.offsets[0] |
| 478 | - this.element.lefttop[0], |
| 479 | (evt.clientY + this.element.scrolls[1]) - this.element.offsets[1] |
| 480 | - this.element.lefttop[1] |
| 481 | ); |
| 482 | } |
| 483 | |
| 484 | } |
| 485 | Events.prototype.BROWSER_EVENTS = [ |
no test coverage detected