db-lgtv-focus-engine
Version:
the Best TV focus engine
58 lines (57 loc) • 2.16 kB
JavaScript
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) => {
}
}