我正在为Android的流星/科尔多瓦应用程序中创建一个非常标准的移动slideOut菜单。我安装了crosswalk package,并看到UI性能有了惊人的提升,除了我用于菜单和其他滑动面板的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);


这行得通,但偶尔会变得迟钝,任何帮助都将是很大的。

最佳答案

好吧好吧,被我自己的黑客殴打了。最初进行此操作时,我使用的是jQuery,要使事情顺利进行,需要非常快速的过渡。但是,当移动到人行横道时,这实际上会使移动变得可怕而缓慢,因此,上述解决方案在touchstart处理程序中,将过渡设置为无。

而已。

关于javascript - Android上的crossWalk cordova touchmove性能问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35357992/

10-09 23:36