Unslider JQuery单击“更改幻灯片”

时间:2016-06-29 17:38:14

标签: javascript jquery jquery-plugins unslider

我正在构建我的投资组合网站,并在案例研究页面上有一个Unslider.com图库。我希望用户能够单击我自己创建的下一个或上一个按钮,并将类名称调用为.next和.prev。这是我的JQuery代码。

jQuery(document).ready(function($) {

    var slider = $('.gallery').unslider({
        autoplay : true,
        arrows : false,
        nav : false,
        animation : 'fade',
    });

    slider.on('unslider.ready', function() {
        $(".prev").click(function() {
            unslider('animate:prev');
        });
    });

    slider.on('unslider.ready', function() {
        $(".next").click(function() {
            unslider('animate:next');
        });
    });

});

我知道Unslider带有下一个和上一个按钮,但我需要自己做这个以达到预期的效果。任何有关代码无效的建议都将受到赞赏。我知道JQuery click与正确的html元素相关联,因为我尝试在单击元素时向函数添加警报并正确显示警报。

谢谢, 杰米

4 个答案:

答案 0 :(得分:7)

之前未使用过unslider,但我认为

unslider('animate:next');

unslider('animate:prev');

需要

slider.unslider('next');

slider.unslider('prev');

注意:您需要在您创建的滑块变量上引用unslider方法

答案 1 :(得分:1)

在点击功能中,您需要说:

$('.gallery').unslider('next');

这是因为您需要告诉Unslider您要控制哪个滑块,然后调用方法(next,而不是animate:next)。

答案 2 :(得分:0)

您可以将arrows设置为true(或从代码中移除arrows : false,,因为默认为true)...

您会看到NextPrev链接,这些链接会更改幻灯片,只需按您喜欢的方式设置css样式: - )

jQuery(document).ready(function($) {

    var slider = $('.gallery').unslider({
        autoplay : true,
        nav : false,
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/unslider/2.0.3/js/unslider-min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/unslider/2.0.3/css/unslider.css" rel="stylesheet" />

<div class="gallery">
  <ul>
    <li>
      <img src="http://unslider.com/img/cat1.jpg" alt="Cats!">
    </li>
    <li>
      <img src="http://unslider.com/img/cat2.jpg" alt="Cats!">
    </li>
    <li>
      <img src="http://unslider.com/img/cat3.jpg" alt="Cats!">
    </li>
  </ul>
</div>

你的初始化代码看起来像这样...(删除arrows : false,,默认情况下是真的;-))

var slider = $('.gallery').unslider({
    autoplay : true,
    nav : false,
    animation : 'fade',
});

答案 3 :(得分:0)

的新答案
  

我知道Unslider带有下一个和上一个按钮,但我需要自己做这个以达到预期的效果。

好了,现在你可能会看到一些非常漂亮的带有图标和自定义文字的箭头,在这种情况下,@ Alex Howes说你可能想要整合自定义功能。

现在,除了使用

slider.unslider('next');

slider.unslider('prev');

它不起作用,因为对于我unslider.ready事件似乎没有触发,我们无需使用它,只需获取slider.on('unslider.ready', function() {});之外的功能它就像一个魅力:)

您的代码看起来像这样......

jQuery(document).ready(function($) {

  var slider = $('.gallery').unslider({
    autoplay: true,
    nav: false,
    arrows: false,
  });
  $(".prev").click(function() {
    slider.unslider('prev');
  });
  $(".next").click(function() {
    slider.unslider('next');
  });

});
.gallery {
  position: relative;
}
.next,
.prev {
  opacity: 0;
  position: absolute;
  top: 50%;
  left: 5px;
  font: 25px sans-serif;
  color: #fff;
  transition: opacity 500ms;
  cursor: pointer;
  text-shadow: 0 0 2px #000;
}
.gallery:hover .next,
.gallery:hover .prev {
  opacity: 1;
}
.next {
  left: auto;
  right: 5px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/unslider/2.0.3/js/unslider-min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/unslider/2.0.3/css/unslider.css" rel="stylesheet" />

<div class="gallery">
  <ul>
    <li>
      <img src="http://unslider.com/img/cat1.jpg" alt="Cats!">
    </li>
    <li>
      <img src="http://unslider.com/img/cat2.jpg" alt="Cats!">
    </li>
    <li>
      <img src="http://unslider.com/img/cat3.jpg" alt="Cats!">
    </li>
  </ul>
  <div class='prev'><i class="fa fa-chevron-left" aria-hidden="true"></i> Previous slide</div>
  <div class='next'>Next slide <i class="fa fa-chevron-right" aria-hidden="true"></i>
  </div>

</div>

希望有所帮助:)