aboutsummaryrefslogtreecommitdiff
path: root/assets/js
diff options
context:
space:
mode:
authortdro <tdro@noreply.example.com>2023-11-30 17:11:23 -0500
committertdro <tdro@noreply.example.com>2023-11-30 17:11:23 -0500
commit0cc8a72e45fe2891c9e11de8566fce91c16d62d3 (patch)
treea041072caa5f1e1750a2b1849f32dc57c615e490 /assets/js
parent602e7058ed234db7d18a2225c68323c089fe0622 (diff)
downloadcanory-0cc8a72e45fe2891c9e11de8566fce91c16d62d3.tar.gz
canory-0cc8a72e45fe2891c9e11de8566fce91c16d62d3.tar.bz2
canory-0cc8a72e45fe2891c9e11de8566fce91c16d62d3.zip
static/js/index: Add hover fix
Show visibility and transition-delay based :hovers only when mouse has stopped
Diffstat (limited to 'assets/js')
-rw-r--r--assets/js/index.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/assets/js/index.js b/assets/js/index.js
index 78fb432..b4e0120 100644
--- a/assets/js/index.js
+++ b/assets/js/index.js
@@ -600,6 +600,47 @@
});
})();
(function() {
+ if (typeof Element !== "undefined") {
+ if (!Element.prototype.matches) {
+ Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
+ }
+ if (!Element.prototype.closest) {
+ Element.prototype.closest = function(s) {
+ var el = this;
+ do {
+ if (el.matches(s)) return el;
+ el = el.parentElement || el.parentNode;
+ }while (el !== null && el.nodeType === 1)
+ return null;
+ };
+ }
+ }
+ const disabled = "0s";
+ function walk(children, callback) {
+ for(let i1 = 0; i1 < children.length; i1++){
+ callback(children[i1]);
+ walk(children[i1].children, callback);
+ }
+ }
+ self.addEventListener("mousemove", function(event) {
+ tree = event.target.closest("figure") || event.target.closest("article");
+ if (tree !== null) {
+ walk(tree.children, function(element) {
+ const delay = self.getComputedStyle(element).getPropertyValue("transition-delay");
+ if (delay !== disabled) {
+ element.style.setProperty("visibility", "hidden");
+ }
+ });
+ walk(tree.children, function(element) {
+ const delay = self.getComputedStyle(element).getPropertyValue("transition-delay");
+ if (delay !== disabled) {
+ element.style.removeProperty("visibility");
+ }
+ });
+ }
+ });
+})();
+(function() {
const relative = new Intl.RelativeTimeFormat("en", {
localeMatcher: "best fit",
numeric: "always",