如何使用jquery在移动网站中模拟桌面网站的键盘事件?

时间:2016-01-07 13:47:46

标签: javascript jquery html jquery-mobile mobile

我使用JQuery将一些功能绑定到桌面网站中的键盘箭头键事件。

$(document).keydown(function(e) {
switch (e.which) {
    case 37: //left
         doIT("leftside");
         Break;
    case 38: //up
         doIT("upside");
         Break;
    case 39: //right
         doIT("rightside");
         Break;
    case 40: //down
         doIT("downside");
         Break;
}

}

这些在桌面网站上运行正常,但在移动网站上却没有 (我知道我们无法访问移动设备中的箭头键)

我希望在移动网站上执行相应的功能 (如果用户在移动网站上向左/向上/向右/向下滑动)

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

我认为你不能这样做,尤其是滑动,因为滑动是不同事件的组合(即keydown,keyhold,keyup)。

通过keyup和keydown事件拾取滑动可能非常困难。最好使用一个可以明确检测滑动的插件,例如Hammer.js

答案 1 :(得分:0)

jquery mobile包含swipeleftswiperight

的活动

对于向上和向下哟必须使用scrollstart和scrollstop事件来检测滚动的方向。

var start = 0;

$(document).on("scrollstart", function() {
  console.log($(window).scrollTop());
  start = $(window).scrollTop();
});

$(document).on("scrollstop", function() {
  console.log($(window).scrollTop());
  var end = $(window).scrollTop();
  if (start - end < 0) {
    console.log("Scrolled down");
    doIT("downside");

  } else {
    console.log("Scrolled up");
    doIT("upside");
  }
});

$(document).on("swipeleft", function() {
  doIT("rightside");
  console.log("right");
});

$(document).on("swipeleft", function() {
  doIT("leftside");
  console.log("right");
});