Files: 1b789e63aa59f5d3e5539a4432c8b3c466977a0e / lib / observe-link-hover.js
615 bytesRaw
1 | const Sustained = require('./sustained') |
2 | const Value = require('mutant/value') |
3 | |
4 | module.exports = function (root, delay) { |
5 | const target = Value() |
6 | root.addEventListener('mouseover', (ev) => { |
7 | let anchor = null |
8 | for (let n = ev.target; n.parentNode; n = n.parentNode) { |
9 | if (n.nodeName === 'A') { |
10 | anchor = n |
11 | break |
12 | } |
13 | } |
14 | target.set(anchor) |
15 | }) |
16 | |
17 | root.addEventListener('mouseleave', () => { |
18 | target.set(false) |
19 | }) |
20 | |
21 | const result = Sustained(target, delay || 500, (v) => { |
22 | return v === undefined |
23 | }) |
24 | |
25 | result.cancel = () => target.set(undefined) |
26 | return result |
27 | } |
28 |
Built with git-ssb-web