jQuery滑块“slide”事件:如何确定用户的滑动方向?

我一直在用萤火虫解剖事件和ui对象,但它似乎没有任何我可以使用的东西。 我错过了什么吗? 我想我可以跟踪价值变化,但这似乎是一个混乱。

$(".selector").slider({ slide: function(event, ui){ // I need to tell if the slide is left-to-right or right-to-left here. } }); 

谢谢! 贾森

如果你想获得方向(值减少或增加),只需使用开始和幻灯片事件。 触发start事件时,将初始值存储在变量中。 之后,只需将此存储值与滑动事件创建的值进行比较。

只需结合不同的事件。

编辑前:

使用记录的 getter

 var orientation = $( ".selector" ).slider( "option", "orientation" ); 

此选项确定滑块是左侧的最小值,右侧的最大值还是底部的最小值,最大值位于顶部。 可能的值:’水平’,’垂直’。

对于每个想知道如何解决这个问题的人,我只是找到了一个解决方案:

开始使用两个包含幻灯片的全局变量。 我的滑块始终从0开始并从左向右移动,因此第一个nexSlide将为1.现在您可以简单地比较两者以查看您滑动的方向。 此方法最有效,因为它可以在不停止滑动的情况下检测方向变化。

  var currentSlide = 0; var nextSlide = 1; jQuery( "#slider" ).bind( "slide", function(event, ui) { currentSlide = jQuery('#slider').slider('value'); nextSlide = ui.value; }); 

简单的解决方案就是使用负范围(而不是[1-10]使用[-10,-1]:

  $("#slider-roomsrange").slider({ range: true, min: -10, max: -1, step: -.5, values: [-3, -1], slide: function (event, ui) { $("#roomsfrom").val((ui.values[0]*-1)); $("#roomsto").val((ui.values[1]*-1)); // $("#rooms").val(ui.values[1] + " - " + ui.values[0]); } }); 

我正在通过使用* -1将值转换为正值并使用gret。

*我现在唯一的问题是步骤是1而不是我预期的.5。