Mostly working
This commit is contained in:
parent
c8d0ef5004
commit
659bb87a59
@ -16,7 +16,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
iframe.yomichan-popup {
|
iframe#yomichan-popup {
|
||||||
all: initial;
|
all: initial;
|
||||||
border: 1px solid #999;
|
border: 1px solid #999;
|
||||||
box-shadow: 0 0 10px rgba(0, 0, 0, .5);
|
box-shadow: 0 0 10px rgba(0, 0, 0, .5);
|
||||||
|
@ -87,6 +87,8 @@ class Client {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
range.setLength(this.options.scanLength);
|
||||||
|
|
||||||
if (this.lastRange !== null && this.lastRange.equals(range)) {
|
if (this.lastRange !== null && this.lastRange.equals(range)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -113,7 +115,7 @@ class Client {
|
|||||||
this.popup.showNextTo(range, content);
|
this.popup.showNextTo(range, content);
|
||||||
|
|
||||||
if (this.options.highlightText) {
|
if (this.options.highlightText) {
|
||||||
this.range.select(length);
|
range.select(length);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.lastRange = range;
|
this.lastRange = range;
|
||||||
|
@ -49,8 +49,8 @@ class Popup {
|
|||||||
posY = elementRect.top - popupRect.height - this.offset;
|
posY = elementRect.top - popupRect.height - this.offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.popup.style.left = pos.x + 'px';
|
this.popup.style.left = posX + 'px';
|
||||||
this.popup.style.top = pos.y + 'px';
|
this.popup.style.top = posY + 'px';
|
||||||
this.popup.style.visibility = 'visible';
|
this.popup.style.visibility = 'visible';
|
||||||
|
|
||||||
this.setContent(content);
|
this.setContent(content);
|
||||||
|
@ -35,16 +35,16 @@ class Range {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
range.setEnd(node, offset + length);
|
this.range.setEnd(node, offset + length);
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
containsPoint(point) {
|
containsPoint(point) {
|
||||||
const rect = this.paddedRect();
|
const rect = this.getBoundingClientRect();
|
||||||
return point.x >= rect.left && point.x <= rect.right;
|
return point.x >= rect.left && point.x <= rect.right;
|
||||||
}
|
}
|
||||||
|
|
||||||
paddedRect() {
|
getBoundingClientRect() {
|
||||||
const range = this.range.cloneRange();
|
const range = this.range.cloneRange();
|
||||||
const startOffset = range.startOffset;
|
const startOffset = range.startOffset;
|
||||||
const endOffset = range.endOffset;
|
const endOffset = range.endOffset;
|
||||||
@ -72,8 +72,8 @@ class Range {
|
|||||||
|
|
||||||
equals(range) {
|
equals(range) {
|
||||||
const equal =
|
const equal =
|
||||||
range.compareBoundaryPoints(Range.END_TO_END, this.range) === 0 &&
|
range.range.compareBoundaryPoints(Range.END_TO_END, this.range) === 0 &&
|
||||||
range.compareBoundaryPoints(Range.START_TO_START, this.range) === 0;
|
range.range.compareBoundaryPoints(Range.START_TO_START, this.range) === 0;
|
||||||
|
|
||||||
return equal;
|
return equal;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user