Исправил проблемы с кликом по статус-бару
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div ref="main" class="main">
|
||||
<div ref="main" class="main" @click="onMouseClick">
|
||||
<canvas v-show="canvasShowFirst" ref="canvasPrev" class="canvas" @mousedown.prevent.stop="onMouseDown" @mouseup.prevent.stop="onMouseUp"
|
||||
@wheel.prevent.stop="onMouseWheel"
|
||||
@touchstart.prevent.stop="onTouchStart" @touchend.prevent.stop="onTouchEnd"
|
||||
@@ -589,6 +589,33 @@ class TextPage extends Vue {
|
||||
}
|
||||
}
|
||||
|
||||
checkPointInStatusBar(pointX, pointY) {
|
||||
let titleBar = {x1: 0, y1: 0, x2: this.realWidth/2, y2: this.statusBarHeight + 1};
|
||||
if (!this.statusBarTop) {
|
||||
titleBar.y1 += this.realHeight - this.statusBarHeight + 1;
|
||||
titleBar.y2 += this.realHeight - this.statusBarHeight + 1;
|
||||
}
|
||||
|
||||
if (pointX >= titleBar.x1 && pointX <= titleBar.x2 &&
|
||||
pointY >= titleBar.y1 && pointY <= titleBar.y2) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
onMouseClick(event) {
|
||||
if (this.showStatusBar && this.book) {
|
||||
const pointX = event.pageX - this.canvas.offsetLeft;
|
||||
const pointY = event.pageY - this.canvas.offsetTop;
|
||||
|
||||
if (this.checkPointInStatusBar(pointX, pointY)) {
|
||||
window.open(this.meta.url, '_blank');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
handleClick(pointX, pointY) {
|
||||
const mouseLegend = {
|
||||
40: {30: 'PgUp', 100: 'PgDown'},
|
||||
@@ -597,19 +624,11 @@ class TextPage extends Vue {
|
||||
};
|
||||
|
||||
if (this.showStatusBar && this.book) {
|
||||
let titleBar = {x1: 0, y1: 0, x2: this.realWidth/2, y2: this.statusBarHeight + 1};
|
||||
if (!this.statusBarTop) {
|
||||
titleBar.y1 += this.realHeight - this.statusBarHeight + 1;
|
||||
titleBar.y2 += this.realHeight - this.statusBarHeight + 1;
|
||||
}
|
||||
|
||||
if (pointX >= titleBar.x1 && pointX <= titleBar.x2 &&
|
||||
pointY >= titleBar.y1 && pointY <= titleBar.y2) {
|
||||
window.open(this.meta.url, '_blank');
|
||||
if (this.checkPointInStatusBar(pointX, pointY)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const w = pointX/this.realWidth*100;
|
||||
const h = pointY/this.realHeight*100;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user