Minor update
Browse files- assets/scripts/src/overlay.js +10 -7
- assets/scripts/src/sholo.js +3 -3
- index.html +2 -1
assets/scripts/src/overlay.js
CHANGED
@@ -7,8 +7,10 @@ import Position from './position';
|
|
7 |
export default class Overlay {
|
8 |
constructor({ alpha = 0.75 }) {
|
9 |
this.alpha = alpha;
|
|
|
|
|
|
|
10 |
this.window = window;
|
11 |
-
this.selected = new Position({});
|
12 |
|
13 |
this.prepareContext();
|
14 |
this.setSize();
|
@@ -30,7 +32,7 @@ export default class Overlay {
|
|
30 |
}
|
31 |
|
32 |
// Highlights the dom element on the screen
|
33 |
-
|
34 |
if (!element) {
|
35 |
// @todo - clearing the overlay
|
36 |
return;
|
@@ -42,21 +44,22 @@ export default class Overlay {
|
|
42 |
return;
|
43 |
}
|
44 |
|
45 |
-
this.
|
46 |
this.draw();
|
47 |
}
|
48 |
|
49 |
draw() {
|
|
|
50 |
this.context.clearRect(0, 0, this.overlay.width, this.overlay.height);
|
51 |
this.context.fillStyle = `rgba( 0, 0, 0, ${this.alpha})`;
|
52 |
this.context.fillRect(0, 0, this.overlay.width, this.overlay.height);
|
53 |
|
54 |
// Cut out the cleared region
|
55 |
this.context.clearRect(
|
56 |
-
this.
|
57 |
-
this.
|
58 |
-
(this.
|
59 |
-
(this.
|
60 |
);
|
61 |
|
62 |
// Append the overlay if not there already
|
|
|
7 |
export default class Overlay {
|
8 |
constructor({ alpha = 0.75 }) {
|
9 |
this.alpha = alpha;
|
10 |
+
this.selectedPosition = new Position({});
|
11 |
+
this.lastSelectedPosition = new Position({});
|
12 |
+
|
13 |
this.window = window;
|
|
|
14 |
|
15 |
this.prepareContext();
|
16 |
this.setSize();
|
|
|
32 |
}
|
33 |
|
34 |
// Highlights the dom element on the screen
|
35 |
+
highlight(element) {
|
36 |
if (!element) {
|
37 |
// @todo - clearing the overlay
|
38 |
return;
|
|
|
44 |
return;
|
45 |
}
|
46 |
|
47 |
+
this.selectedPosition = position;
|
48 |
this.draw();
|
49 |
}
|
50 |
|
51 |
draw() {
|
52 |
+
// Reset the overlay
|
53 |
this.context.clearRect(0, 0, this.overlay.width, this.overlay.height);
|
54 |
this.context.fillStyle = `rgba( 0, 0, 0, ${this.alpha})`;
|
55 |
this.context.fillRect(0, 0, this.overlay.width, this.overlay.height);
|
56 |
|
57 |
// Cut out the cleared region
|
58 |
this.context.clearRect(
|
59 |
+
this.selectedPosition.left - window.scrollX,
|
60 |
+
this.selectedPosition.top - window.scrollY,
|
61 |
+
(this.selectedPosition.right - this.selectedPosition.left),
|
62 |
+
(this.selectedPosition.bottom - this.selectedPosition.top),
|
63 |
);
|
64 |
|
65 |
// Append the overlay if not there already
|
assets/scripts/src/sholo.js
CHANGED
@@ -6,8 +6,8 @@ import Element from './element';
|
|
6 |
* Plugin class that drives the plugin
|
7 |
*/
|
8 |
export default class Sholo {
|
9 |
-
constructor({
|
10 |
-
this.overlay = new Overlay({
|
11 |
}
|
12 |
|
13 |
highlight(selector) {
|
@@ -22,6 +22,6 @@ export default class Sholo {
|
|
22 |
}
|
23 |
|
24 |
const element = new Element(domElement);
|
25 |
-
this.overlay.
|
26 |
}
|
27 |
}
|
|
|
6 |
* Plugin class that drives the plugin
|
7 |
*/
|
8 |
export default class Sholo {
|
9 |
+
constructor({ opacity = 0.75 } = {}) {
|
10 |
+
this.overlay = new Overlay({ opacity });
|
11 |
}
|
12 |
|
13 |
highlight(selector) {
|
|
|
22 |
}
|
23 |
|
24 |
const element = new Element(domElement);
|
25 |
+
this.overlay.highlight(element);
|
26 |
}
|
27 |
}
|
index.html
CHANGED
@@ -47,6 +47,7 @@
|
|
47 |
const nodesToSelect = [
|
48 |
'.section__header',
|
49 |
'.section__how',
|
|
|
50 |
];
|
51 |
|
52 |
const sholo = new Sholo();
|
@@ -54,7 +55,7 @@
|
|
54 |
nodesToSelect.forEach((nodeToSelect, index) => {
|
55 |
window.setTimeout(() => {
|
56 |
sholo.highlight(nodeToSelect);
|
57 |
-
}, index *
|
58 |
});
|
59 |
</script>
|
60 |
</body>
|
|
|
47 |
const nodesToSelect = [
|
48 |
'.section__header',
|
49 |
'.section__how',
|
50 |
+
'.section__examples'
|
51 |
];
|
52 |
|
53 |
const sholo = new Sholo();
|
|
|
55 |
nodesToSelect.forEach((nodeToSelect, index) => {
|
56 |
window.setTimeout(() => {
|
57 |
sholo.highlight(nodeToSelect);
|
58 |
+
}, index * 5000);
|
59 |
});
|
60 |
</script>
|
61 |
</body>
|