Android上的crossWalk cordova touchmove性能问题
问题描述:
我在Android的meteor/cordova应用程序中创建了一个非常标准的移动slideOut菜单。我安装了crosswalk package,并且在用户界面性能方面看到了惊人的提升,除了我用于菜单和其他滑动面板的touchmove事件。下面是触摸事件的代码。Android上的crossWalk cordova touchmove性能问题
/* Touch Events - Nav */
var el = document.getElementById('appnavigation');
var touchPos;
var start = function(event) {
var touch = event.touches[0] ||
event.changedTouches[0];
touchPos = touch.clientX;
el.style.transition = 'transform 0.08s';
};
var end = function(event) {
var touch = event.touches[0] ||
event.changedTouches[0];
var pos = el.getBoundingClientRect().left;
if (Math.abs(pos) > 160) {
App.Util.toggleVisible('nav');
}
el.style.transition = '';
el.style.transform = '';
};
var move = function(event) {
var touch = event.touches[0] ||
event.changedTouches[0];
var x = Math.abs(touch.clientX - touchPos);
if (touch.clientX > 0 && x > 0) {
el.style.transform = 'translate3d(-' + x + 'px, 0, 0)';
}
};
// attach event listeners
el.addEventListener('touchstart', start, false);
el.addEventListener('touchend', end, false);
el.addEventListener('touchcancel', end, false);
el.addEventListener('touchmove', move, false);
这个工程,但变得零星laggy,任何帮助将是伟大的。
答
好吧,被我自己的黑客殴打。当我最初做这件事的时候,我使用jQuery,并且为了平滑事情需要非常快速的转换。当移动到人行横道时,虽然这实际上使移动变得糟糕而迟缓,因此解决方案在touchstart
处理程序中设置为无。
就是这样。