Extjs 向Sencha桌面应用程序添加鼠标滚轮

Extjs 向Sencha桌面应用程序添加鼠标滚轮,extjs,sencha-touch,sencha-touch-2,Extjs,Sencha Touch,Sencha Touch 2,因此,使用Sencha的假定优势是能够为多个平台提供1个代码库。我有一个项目,我需要在iOS,Android,PC和Mac上。我发现我可以使用Sencha Touch构建移动设备,并自动处理手指滑动事件。我遇到的问题是,当我构建桌面应用程序时,它不会响应我的鼠标滚轮 我参加过Sencha论坛,这个问题在一个地方没有得到回答,在另一个地方,他们在两年前承诺支持这个问题。我发现的任何第三方解决方案要么没有正确记录,要么无法工作。在其他地方,我被告知Sencha Touch用于移动开发,而Extjs用

因此,使用Sencha的假定优势是能够为多个平台提供1个代码库。我有一个项目,我需要在iOS,Android,PC和Mac上。我发现我可以使用Sencha Touch构建移动设备,并自动处理手指滑动事件。我遇到的问题是,当我构建桌面应用程序时,它不会响应我的鼠标滚轮

我参加过Sencha论坛,这个问题在一个地方没有得到回答,在另一个地方,他们在两年前承诺支持这个问题。我发现的任何第三方解决方案要么没有正确记录,要么无法工作。在其他地方,我被告知Sencha Touch用于移动开发,而Extjs用于桌面,但我真的不想只为鼠标滚轮构建另一个代码库。

有一个JSFIDLE,当鼠标滚轮向上时,
delta
返回
1
,当鼠标滚轮向下时,
-1

var doScroll = function (e) {
    // cross-browser wheel delta
    e = window.event || e;
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));

    // Do something with `delta`
    console.log(delta);

    e.preventDefault();
};

if (window.addEventListener) {
    window.addEventListener("mousewheel", doScroll, false);
    window.addEventListener("DOMMouseScroll", doScroll, false);
} else {
    window.attachEvent("onmousewheel", doScroll);
}
将此代码放入应用程序的初始化块中。现在,无论哪个元素具有
focus
,此代码都将在应用程序中的任何位置运行。我很幸运,在我的应用程序中,我的每个页面只有一个需要滚动的元素

替换
console.log(增量)
带有确定哪个元素处于活动状态/哪个元素需要滚动的代码,以及滚动该元素的代码

var scrollMe = Ext.getCmp("componentToScroll");
var currentY = scrollMe.getScrollable().getScroller().position.y;
var pageHeight = document.getElementById("orderList").clientHeight;;
var containerHeight = 722; //the defined height of the scrollMeContainer

var newY = currentY;
if (delta === 1) {
    if (currentY >= 30) {
        newY = currentY - 30;
    }
    else {
        newY = 0;
    }
}
else if (delta === -1) {
    if (currentY <= containerHeight - pageHeight - 30) {
        newY = currentY + 30;
    }
    else {
        newY = containerHeight - pageHeight;
    }
}
scrollMe.getScrollable().getScroller().scrollTo(0, newY);
var scrollMe=Ext.getCmp(“componentToScroll”);
var currentY y=scrollMe.getScrollable().getScroller().position.y;
var pageHeight=document.getElementById(“订单列表”).clientHeight;;
var containerHeight=722//scrollMeContainer的定义高度
var newY=电流y;
如果(增量===1){
如果(当前Y>=30){
newY=当前Y-30;
}
否则{
newY=0;
}
}
else if(delta==-1){
如果(当前)