【问题标题】:Unslider JQuery Click Change SlideUnslider JQuery 单击更改幻灯片
【发布时间】:2016-06-29 17:38:14
【问题描述】:

我目前正在构建我的投资组合网站,并在案例研究页面上有一个 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 单击链接到正确的 html 元素,因为我尝试在单击元素时向函数添加警报并且它正确显示了警报。

谢谢, 杰米

【问题讨论】:

    标签: javascript jquery jquery-plugins unslider


    【解决方案1】:

    之前没用过unslider,不过我觉得

    unslider('animate:next');
    

    unslider('animate:prev');
    

    需要

    slider.unslider('next');
    

    slider.unslider('prev');
    

    注意:你需要在你创建的slider变量上引用unslider方法

    【讨论】:

    • 我坚信尝试做已经完成的事情只是浪费时间......如果他们是一个简单的选项,可以启用 prev 和 next 链接 IMO 最好使用它而不是使用自定义html 并使其与自定义 js 一起使用...
    • 人们总是可以使用 CSS 让它看起来像自己想要的样子;)
    • 完全看情况。我是从 OP 说的事实开始的:“我知道 Unslider 带有下一个和上一个按钮,但我需要自己这样做才能达到预期的效果。” ;)
    • 啊...错过了那一点 :-P :-)
    【解决方案2】:

    在你的点击函数中,你需要说:

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

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

    【讨论】:

      【解决方案3】:

      新答案

      我知道 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>

      希望有帮助:)

      【讨论】:

        【解决方案4】:

        您可以将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,,默认情况下为 true ;-))

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-21
          • 2015-06-21
          • 1970-01-01
          • 2012-02-11
          • 2012-12-26
          相关资源
          最近更新 更多