Javascript 限制我的页面滚动,使其只跳过一个幻灯片

Javascript 限制我的页面滚动,使其只跳过一个幻灯片,javascript,wordpress,scroll,revolution-slider,Javascript,Wordpress,Scroll,Revolution Slider,这似乎是一个很容易的解决办法,但我似乎无法得到它。我需要在JavaScript中限制或取消滚动,以便幻灯片只跳到下一张幻灯片。目前,它正在计算滚动点击的次数,然后滚动那么多幻灯片。我正在WordPress网站上使用revolution slider 我有当前的代码,可以让幻灯片在鼠标上滚动,跳到下一张幻灯片 (函数(){ //将此处的“revapi1”更改为滑块使用的任何API名称(请参见下面的注释) 变量滑块=revapi1; slider.parent().on('mousewheel-D

这似乎是一个很容易的解决办法,但我似乎无法得到它。我需要在JavaScript中限制或取消滚动,以便幻灯片只跳到下一张幻灯片。目前,它正在计算滚动点击的次数,然后滚动那么多幻灯片。我正在WordPress网站上使用revolution slider

我有当前的代码,可以让幻灯片在鼠标上滚动,跳到下一张幻灯片

(函数(){
//将此处的“revapi1”更改为滑块使用的任何API名称(请参见下面的注释)
变量滑块=revapi1;
slider.parent().on('mousewheel-DOMMouseScroll',函数(事件){
if(event.originalEvent.wheelDelta>0 | | event.originalEvent.detail<0){
slider.revprev();
}
否则{
slider.revnext();
}
});
})()
或者,当滑块移动时,可以使用“锁定”锁定事件处理程序:

  element.on('mousewheel DOMMouseScroll',function(){
      if(!element.hasClass('locked')){
          element.addClass('locked');
          ...//process, move next, move previous
          element.removeClass('locked');
      }
  })
这个很容易理解

完整的:

 (function() {


       var slider = revapi1;

       slider.parent().on('mousewheel DOMMouseScroll',throttle(function(event) {
             if(event.originalEvent.wheelDelta > 0 ||     event.originalEvent.detail < 0) {
                slider.revprev();
             }else {
                slider.revnext();
             }
      },250));
    function throttle(fn, threshhold, scope) {
         threshhold || (threshhold = 250);
         var last,
         deferTimer;
         return function () {
             var context = scope || this;

             var now = +new Date,
             args = arguments;
             if (last && now < last + threshhold) {
                  // hold on to it
                  clearTimeout(deferTimer);
                  deferTimer = setTimeout(function () {
                       last = now;
                       fn.apply(context, args);
                  }, threshhold);
              } else {
                  last = now;
                  fn.apply(context, args);
              }
        };
     }

 })()   
(函数(){
变量滑块=revapi1;
slider.parent().on('mousewheel DOMMouseScroll',throttle(函数(事件)){
if(event.originalEvent.wheelDelta>0 | | event.originalEvent.detail<0){
slider.revprev();
}否则{
slider.revnext();
}
},250));
功能节流阀(fn、阈值保持、范围){
阈值| |(阈值=250);
最后,
延时定时器;
返回函数(){
var context=scope | | this;
var now=+新日期,
args=参数;
如果(上次和现在<上次+阈值){
//坚持住
clearTimeout(延迟计时器);
延迟计时器=设置超时(函数(){
最后=现在;
fn.应用(上下文,args);
},阈值);
}否则{
最后=现在;
fn.应用(上下文,args);
}
};
}
})()   

我看不出问题,它正常滑动。你在这段时间内修好了吗?嘿,戈兰,它正常地滚动和滑动,但是如果你在滚轮上做了很大的拖动,它会跳过特定的幻灯片。我想要一个大卷轴只跳过一个幻灯片Hey Jilykate,我必须用上面的代码替换我现有的代码吗?这只是一个选项。有很多方法使你的功能“节流”。我重新编辑了我的答案,你也可以使用上面的锁。我觉得自己像个白痴哈哈!我无法让他们使用我目前拥有的代码。你能把完整的代码一起发布吗?@user3274603(按要求)~非常感谢你,我完全明白你在那里做了什么:)它成功了。有没有什么快速的方法可以将其更改为不延迟,而只是暂停功能?因为它现在放在幻灯片上10秒钟。但在10秒钟结束之前,我不想滚动到其他幻灯片吗?
  element.on('mousewheel DOMMouseScroll',function(){
      if(!element.hasClass('locked')){
          element.addClass('locked');
          ...//process, move next, move previous
          element.removeClass('locked');
      }
  })
 (function() {


       var slider = revapi1;

       slider.parent().on('mousewheel DOMMouseScroll',throttle(function(event) {
             if(event.originalEvent.wheelDelta > 0 ||     event.originalEvent.detail < 0) {
                slider.revprev();
             }else {
                slider.revnext();
             }
      },250));
    function throttle(fn, threshhold, scope) {
         threshhold || (threshhold = 250);
         var last,
         deferTimer;
         return function () {
             var context = scope || this;

             var now = +new Date,
             args = arguments;
             if (last && now < last + threshhold) {
                  // hold on to it
                  clearTimeout(deferTimer);
                  deferTimer = setTimeout(function () {
                       last = now;
                       fn.apply(context, args);
                  }, threshhold);
              } else {
                  last = now;
                  fn.apply(context, args);
              }
        };
     }

 })()