add hint element wrapper
This commit is contained in:
parent
f1c920e000
commit
99c1b83133
2 changed files with 45 additions and 0 deletions
7
src/content/hint.css
Normal file
7
src/content/hint.css
Normal file
|
@ -0,0 +1,7 @@
|
|||
.vimvixen-hint {
|
||||
background-color: yellow;
|
||||
border: 1px solid gold;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
text-transform: uppercase;
|
||||
}
|
38
src/content/hint.js
Normal file
38
src/content/hint.js
Normal file
|
@ -0,0 +1,38 @@
|
|||
import './hint.css';
|
||||
|
||||
export default class Hint {
|
||||
constructor(target, tag) {
|
||||
this.target = target;
|
||||
|
||||
let doc = target.ownerDocument
|
||||
let { top, left } = target.getBoundingClientRect();
|
||||
|
||||
this.element = doc.createElement('span');
|
||||
this.element.className = 'vimvixen-hint';
|
||||
this.element.textContent = tag;
|
||||
this.element.style.top = top + 'px';
|
||||
this.element.style.left = left + 'px';
|
||||
|
||||
this.show();
|
||||
doc.body.append(this.element);
|
||||
}
|
||||
|
||||
show() {
|
||||
this.element.style.display = 'inline';
|
||||
}
|
||||
|
||||
hide() {
|
||||
this.element.style.display = 'none';
|
||||
}
|
||||
|
||||
remove() {
|
||||
this.element.remove();
|
||||
}
|
||||
|
||||
activate() {
|
||||
if (this.target.tagName.toLowerCase() === 'a') {
|
||||
let href = this.target.href;
|
||||
window.location.href = href;
|
||||
}
|
||||
}
|
||||
}
|
Reference in a new issue