UNPKG

db-lgtv-focus-engine

Version:

the Best TV focus engine

58 lines (57 loc) 2.16 kB
export function bindWheelListener(focus_engine) { window.scroll_sum = 0 var scrollFunc = function (e) { e.preventDefault() clearTimeout(window._onscroll_t) window.is_scrolling = true window._onscroll_t = setTimeout(() => { window.is_scrolling = false }, 1500) e = e || window.event; if (e.wheelDelta) { //判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) { //当滑轮向上滚动时 window.scroll_sum += e.wheelDelta if (window.scroll_sum > 100) { window.scroll_sum = 0 // focus_engine.findFocusedLeaf().top.focus() let event = new Event('keydown') event.which = 38 event.keyCode = 38 event.key = 'ArrowUp' event.code = 'ArrowUp' document.dispatchEvent(event) } // window.scrollBy({ // top: - e.wheelDelta // }) } if (e.wheelDelta < 0) { //当滑轮向下滚动时 window.scroll_sum += e.wheelDelta if (window.scroll_sum < - 100) { window.scroll_sum = 0 //focus_engine.findFocusedLeaf().bottom.focus() let event = new Event('keydown') event.which = 40 event.keyCode = 40 event.key = 'ArrowDown' event.code = 'ArrowDown' document.dispatchEvent(event) } // window.scrollBy({ // top: - e.wheelDelta // }) } } else if (e.detail) { //Firefox滑轮事件 if (e.detail> 0) { //当滑轮向上滚动时 } if (e.detail< 0) { //当滑轮向下滚动时 } } }; //滚动滑轮触发scrollFunc方法 document.onmousewheel = scrollFunc; } export function unbindWheelListener(focus_engine) { document.onmousewheel = (e) => { } }