1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import * as THREE from '../lib/three.module.js'
- let common = {
- handelPadding: (function() {
- //去除player左边和上面的宽高,因为pc的player左上有其他element 许钟文
- var pads = new Map() //记录下来避免反复计算
- return function(x, y, domE) {
- let pad
- let padInfo = pads.get(domE)
- if (padInfo) {
- if (domE.clientWidth == padInfo.width && domE.clientHeight == padInfo.height) {
- pad = padInfo.pad
- }
- }
- if (!pad) {
- pad = {
- x: this.getOffset('left', domE),
- y: this.getOffset('top', domE)
- }
- pads.set(domE, {
- width: domE.clientWidth,
- height: domE.clientHeight,
- pad
- })
- }
- return {
- x: x - pad.x,
- y: y - pad.y
- }
- }
- })(),
- getOffset: function(type, element, parent) {
- //获取元素的边距 许钟文
- var offset = type == 'left' ? element.offsetLeft : element.offsetTop
- if (!parent) parent = document.body
- while ((element = element.offsetParent)) {
- if (element == parent) break
- offset += type == 'left' ? element.offsetLeft : element.offsetTop
- }
- return offset
- }
- }
- export default common
|