|
|
@@ -340,19 +340,50 @@ url: ${this.engine.options.url}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+ // 悬浮球click事件
|
|
|
+ onSphere(e){
|
|
|
+ this.levitatedSphereVisible = true
|
|
|
+ e.preventDefault();
|
|
|
+ },
|
|
|
+ // 悬浮球按下事件
|
|
|
+ onSphereDown(e){
|
|
|
+ // 给元素设置鼠标按下状态
|
|
|
+ e.target.isMousedown = true;
|
|
|
+ e.preventDefault();
|
|
|
+ },
|
|
|
+ // 悬浮球抬起事件
|
|
|
+ onSphereUp(e){
|
|
|
+ // 给元素设置鼠标按下状态
|
|
|
+ e.target.isMousedown = false;
|
|
|
+ e.preventDefault();
|
|
|
+ },
|
|
|
// 悬浮球移动
|
|
|
touchmoveLevitatedSphere(e) {
|
|
|
- let { pageX, pageY } = e.targetTouches[0]
|
|
|
+ // 过滤未按下时的移动事件
|
|
|
+ if(e.type === 'mousemove' && !e.target.isMousedown) return
|
|
|
+
|
|
|
+ let pageX,pageY;
|
|
|
+ if(e.type === 'mousemove' && e.target.isMousedown){
|
|
|
+ pageX = e.pageX;
|
|
|
+ pageY = e.pageY;
|
|
|
+ }else if(e.type === 'touchmove'){
|
|
|
+ // let { pageX, pageY } = e.targetTouches[0]
|
|
|
+ pageX = e.targetTouches[0].pageX;
|
|
|
+ pageY = e.targetTouches[0].pageY;
|
|
|
+ }
|
|
|
+
|
|
|
let min = 20
|
|
|
let MaxPageX = this.width - 20
|
|
|
let MaxPageY = this.height - 20
|
|
|
pageX = pageX <= min ? min : (pageX >= MaxPageX ? MaxPageX : pageX)
|
|
|
pageY = pageY <= min ? min : (pageY >= MaxPageY ? MaxPageY : pageY)
|
|
|
+
|
|
|
this.levitatedSpherePositionData = {
|
|
|
left: `${pageX}px`,
|
|
|
top: `${pageY}px`,
|
|
|
transform: 'translate(-50%, -50%)'
|
|
|
}
|
|
|
+ e.preventDefault();
|
|
|
},
|
|
|
touchendLevitatedSphere(e) {
|
|
|
localStorage.setItem('levitatedSpherePositionData', JSON.stringify(this.levitatedSpherePositionData))
|
|
|
@@ -1008,6 +1039,9 @@ method: post
|
|
|
this.layoutViewWidth = currentWidth;
|
|
|
console.log(`2目标: 宽${this.layoutViewWidth},高${this.layoutViewHeight}`);
|
|
|
}
|
|
|
+
|
|
|
+ // 悬浮球位置设置为默认位置
|
|
|
+ this.levitatedSpherePositionData = { right: '15px', top: '15px' }
|
|
|
})
|
|
|
},
|
|
|
|