如何在Slick.js中使用鼠标滚动而不是拖动?

mig*_*igs 4 javascript mouse scroll carousel slick.js

使用slick.js实现滚动的最佳方法是什么,这样当您使用鼠标滚动时,它会切换到下一张幻灯片?还是有一个我错过的设置?

以下是我所指的,以防万一. http://kenwheeler.github.io/slick/

Ofi*_*ora 10

您可以使用在wheel旋转指点设备(通常是鼠标)的滚轮按钮时触发的事件来实现滚动.

const slider = $(".slider-item");
slider
  .slick({
    dots: true
  });

slider.on('wheel', (function(e) {
  e.preventDefault();

  if (e.originalEvent.deltaY < 0) {
    $(this).slick('slickNext');
  } else {
    $(this).slick('slickPrev');
  }
}));
Run Code Online (Sandbox Code Playgroud)
.container {
  margin: 0 auto;
  padding: 40px;
  width: 80%;
  color: #333;
  background: #419be0;
}

.slick-slide {
  text-align: center;
  color: #419be0;
  background: white;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.0/slick/slick.css" />
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.0/slick/slick-theme.css" />

<script type="text/javascript" src="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.0/slick/slick.min.js"></script>



<div class='container'>
  <div class='slider-item'>
    <div>
      <h3>1</h3>
    </div>
    <div>
      <h3>2</h3>
    </div>
    <div>
      <h3>3</h3>
    </div>
    <div>
      <h3>4</h3>
    </div>
    <div>
      <h3>5</h3>
    </div>
    <div>
      <h3>6</h3>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

更多信息

  • 这可以工作,但不是一个很好的实现,因为滚轮事件触发很多次,导致滑块闪烁,因为实际上并不可用。 (2认同)

Max*_*ych 6

我几乎没有修改以前的 Mac 答案。因为有滚动触发多次。

var slider = $(".slider-item");
var scrollCount = null;
var scroll= null;

slider
    .slick({
        dots: true
    });

slider.on('wheel', (function(e) {
    e.preventDefault();

    clearTimeout(scroll);
    scroll = setTimeout(function(){scrollCount=0;}, 200);
    if(scrollCount) return 0;
    scrollCount=1;

    if (e.originalEvent.deltaY < 0) {
        $(this).slick('slickNext');
    } else {
        $(this).slick('slickPrev');
    }
}));
Run Code Online (Sandbox Code Playgroud)

  • 我在这里更新了代码 https://js.do/code/334612 ,我遇到了同样的问题。使用鼠标滚轮它可以工作,但没有鼠标和滚动则它不工作..它从一二三跳 (2认同)