Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止垂直阻力_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何防止垂直阻力

Javascript 如何防止垂直阻力,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试创建一个包含拖动事件的表。我想防止垂直拖动;我怎样才能做到这一点 请查收。我试图一次只拖动一行,需要防止垂直拖动 请更新小提琴 function rangeMouseMove(e) { if (isDragging) { var allCells = $("#table td"); dragEnd = allCells.index($(this)); selectRange(); } } 你会考虑像榔头一样的垃圾吗?JS?< /

我正在尝试创建一个包含拖动事件的表。我想防止垂直拖动;我怎样才能做到这一点

请查收。我试图一次只拖动一行,需要防止垂直拖动

请更新小提琴

function rangeMouseMove(e) {
  if (isDragging) {
    var allCells = $("#table td");
    dragEnd = allCells.index($(this));
    selectRange();
  }            
}

你会考虑像榔头一样的垃圾吗?JS?< /P> 关于你的问题,你可以有一个FIFO数组。将事件从左拖入,从右拖出。中只允许水平拖动事件

// pseudo code
var q = [];

$t.on('drag', function (e) {
  if (e.direction === 'left' || e.direction === 'right') {
    q.push(e.deltaX);
  }
});

setTimeinterval(function () {
  if (q.length) {
     _apply(q.shift());
  }
}, 100);

如果你想使用hammer.js..那么它将帮助你:

要在做手势时改善用户体验,应防止浏览器滚动。这可以通过ev.signature.preventDefault()方法完成。对于垂直滑动,应防止拖动,否则将不起作用(在大多数情况下…)

为了获得最佳的总体体验,您可以将preventDefault选项设置为true。这使Hammer能够完全控制给定元件上的触摸输入。但它会禁用所有默认浏览器操作

水平滑动并拖动

var options = {
  dragLockToAxis: true,
  dragBlockHorizontal: true
};
var hammertime = new Hammer(element, options);
hammertime.on("dragleft dragright swipeleft swiperight", function(ev){ });
变换(挤压、旋转):

var options = {
  preventDefault: true
};
var hammertime = new Hammer(element, options);
hammertime.on("transform", function(ev){ });
垂直滑动和拖动:

var options = {
  preventDefault: true
};
var hammertime = new Hammer(element, options);
hammertime.on("transform", function(ev){ });
因为垂直移动在设备上非常棘手,人们想要滚动,你应该尽量避免这些。如果您确实需要它们,配置Hammer的最佳方法就是防止出现默认值

var options = {
  preventDefault: true
};
var hammertime = new Hammer(element, options);
hammertime.on("dragup dragdown swipeup swipedown", function(ev){ });
一把锤子可以统治他们所有人希望它能帮上忙