git ssb

0+

ev / microbay



forked from Dominic / patchbay

Tree: f2e9b049b948d751537082c3924fa21d4b28cdb5

Files: f2e9b049b948d751537082c3924fa21d4b28cdb5 / keyscroll.js

799 bytesRaw
1module.exports = function (container) {
2 var curMsgEl
3
4 if (!container)
5 return function() {}
6
7 container.addEventListener('click', onActivateChild, false)
8 container.addEventListener('focus', onActivateChild, true)
9
10 function onActivateChild(ev) {
11 for (var el = ev.target; el; el = el.parentNode) {
12 if (el.parentNode == container) {
13 curMsgEl = el
14 return
15 }
16 }
17 }
18
19 function selectChild(el) {
20 if (!el) return
21 (el.scrollIntoViewIfNeeded || el.scrollIntoView).call(el)
22 el.focus()
23 curMsgEl = el
24 }
25
26 return function scroll(d) {
27 selectChild(!curMsgEl ? container.firstChild
28 : d > 0 ? curMsgEl.nextElementSibling || container.lastChild
29 : d < 0 ? curMsgEl.previousElementSibling || container.firstChild
30 : curMsgEl)
31 }
32}
33

Built with git-ssb-web