【问题标题】:Slick slider custom dots光滑的滑块自定义点
【发布时间】:2017-03-02 11:57:00
【问题描述】:

我想知道是否有一种方法可以使用自定义的光滑滑块点。当我搜索时,我只能找到有关如何将幻灯片中的点更改为缩略图的示例,但这不是我想要完成的。我只想使用我自己的 png 图片进行活动和非活动点导航。我试过这个:

    $('.slick-dots li').html('<a href="#"><img src="slide-dot.png" /></a>');
    $('.slick-dots li.slick-active').html('<a href="#"><img src="slide-dot-active.png" /></a>');

但这没有用,虽然我记得我以前做过类似的事情。我在这里错过了什么吗?

谢谢!

【问题讨论】:

  • 任何控制台错误?

标签: javascript jquery navigation slick.js


【解决方案1】:

这可以在将 slick 初始化为选项之一时完成:

JS

$(".slider").slick({
    dots: true,
    customPaging : function(slider, i) {
        return '<a href="#"><img src="slide-dot.png" /><img src="slide-dot-active.png" /></a>';
    },
});

然后就可以根据活动状态用CSS显示你想要的图片了

<!-- language: lang-css -->

.slick-dots li img:nth-child(1) {
    display: block;
}

.slick-dots li img:nth-child(2) {
    display: none;
}

.slick-dots li.slick-active img:nth-child(1) {
    display: none;
}

.slick-dots li.slick-active img:nth-child(2) {
    display: block;
}

【讨论】:

  • 能否请您制作任何 jsfiddle 或 codepen 以方便理解?
  • 你有一个活动的代码示例可以构建吗?这可能是更好的帮助方式。
  • 请注意,如果您像我一样是白痴,则需要在返回的 HTML 中使用 &lt;a&gt; 标记。
【解决方案2】:

您可以仅使用 CSS 设置圆点样式并避免使用内联图像:

使用背景图片:

.slick-dots li button {
    background: url(path/to/your-image.png);
    text-indent: -9999px;
    overflow:hidden;
    /* more CSS */
}

使用伪元素:

.slick-dots li button {
    font-size: 0;
    /* more CSS */
}
.slick-dots li button {
    content:url(path/to/your-image.png);
}

【讨论】:

    【解决方案3】:

    您可以在初始化滑块时使用“appendDots”选项。 例如: appendDots: '$('.your-dot')'

    【讨论】:

    • 这不只是指定在哪个元素下添加点吗?
    【解决方案4】:

    您好,我搜索了很多但没有找到任何解决方案,所以我创建了自己的解决方案

    你可以这样做:

    html

    <div class="card rounded-0 h-100">
        <div class="card-body p-0">
            <div id="slick-slider">
                <a href="#"><img class="w-100" src="https://demo.activeitzone.com/ecommerce/public/uploads/all/kYLM906MNqYcHvm0bHLcIj3TxldjZfySHl26wHMu.png" alt=""></a>
                <a href="#"><img class="w-100" src="https://demo.activeitzone.com/ecommerce/public/uploads/all/ppB6tYYNgWM3vL3uq81n80fZCdxrgkMul9KPk9pm.png" alt=""></a>
                <a href="#"><img class="w-100" src="https://demo.activeitzone.com/ecommerce/public/uploads/all/Dp0DBHFbBuyRCAUi8Od6tk4izOsMg1mVB1v8QAeu.png" alt=""></a>
            </div>
            <div class="slick-slider-nav"></div>
            <div class="slick-slider-dots"></div>
        </div>
    </div>
    

    javascript

    $('#slick-slider').slick({
        autoplay: true,
        dots: true,
        appendArrows: $('.slick-slider-nav'),
        appendDots: $('.slick-slider-dots'),
        prevArrow: "<button class='slick-prev btn btn-white rounded-circle'><i class='mdi mdi-chevron-left'></i></button>",
        nextArrow: "<button class='slick-next btn btn-white rounded-circle'><i class='mdi mdi-chevron-right'></i></button>",
    });
    

    对于像这样的点样式,我使用SCSS

    .slick-slider-dots{
        position: absolute;
        bottom: 0px;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
    
        ul {
            display: flex;
            list-style: none;
            margin: 0;
            padding: 0;
    
            li {
                margin: 0 4px;
                button {
                    background: $gray-200;
                    height: 8px;
                    width: 35px;
                    overflow: hidden;
                    color: $gray-200;
                    border: none;
                    border-radius: 4px;
                }
                &.slick-active {
                    button {
                        background: $primary;
                        color: $primary;
                    }
                }
            }
        }
    
    }
    

    点看起来像这样

    【讨论】:

    • 非常酷的一个!感谢分享。图标来自哪里?
    • @StefanYYC 你说的是哪个图标?
    • 这个&lt;i class='mdi mdi-chevron-right'&gt;&lt;/i&gt;
    • @StefanYYC 他们是你可以从这个cdn&lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/MaterialDesign-Webfont/5.9.55/css/materialdesignicons.min.css"/&gt;得到的材料设计图标
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多