Ändern Sie die Pfeiltasten im Slick-Schieberegler

Lesezeit: 5 Minuten

Ich möchte die Pfeile in meinem Slick-Slider ändern, aber es ändert sich nicht. Ich möchte die nächste und vorherige Schaltfläche als Bild. Ich habe versucht, es in a zu setzen <style> aber es funktioniert immer noch nicht. Wo kann ich die Pfeileinstellung ändern?

glattes Thema CSS
@charset “UTF-8”;

// Default Variables

$slick-font-path: "./fonts/" !default;
$slick-font-family: "slick" !default;
$slick-loader-path: "./" !default;
$slick-arrow-color: white !default;
$slick-dot-color: black !default;
$slick-dot-color-active: $slick-dot-color !default;
$slick-prev-character: "←" !default;
$slick-next-character: "→" !default;
$slick-dot-character: "•" !default;
$slick-dot-size: 6px !default;
$slick-opacity-default: 0.75 !default;
$slick-opacity-on-hover: 1 !default;
$slick-opacity-not-active: 0.25 !default;

@function slick-image-url($url) {
    @if function-exists(image-url) {
        @return image-url($url);
    }
    @else {
        @return url($slick-loader-path + $url);
    }
}

@function slick-font-url($url) {
    @if function-exists(font-url) {
        @return font-url($url);
    }
    @else {
        @return url($slick-font-path + $url);
    }
}

/* Slider */

.slick-list {
    .slick-loading & {
        background: #fff slick-image-url("ajax-loader.gif") center center no-repeat;
    }
    position: absolute;
    margin: 0 auto;
}

/* Icons */
@if $slick-font-family == "slick" {
    @font-face {
        font-family: "slick";
        src: slick-font-url("slick.eot");
        src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg");
        font-weight: normal;
        font-style: normal;
    }
}

/* Arrows */

.slick-prev,
.slick-next {
    position: absolute;
    display: block;
    height: 20px;
    width: 30px;
    line-height: 0px;
    font-size: 0px;
    cursor: pointer;
    background: transparent;
    color: transparent;
    top: 50%;
    margin-top: -10px;
    padding: 0;
    border: none;
    outline: none;
    &:hover, &:focus {
        outline: none;
        background: transparent;
        color: transparent;
        &:before {
            opacity: $slick-opacity-on-hover;
        }
    }
    &.slick-disabled:before {
        opacity: $slick-opacity-not-active;
    }
}

.slick-prev:before, .slick-next:before {
    font-family: $slick-font-family;
    font-size: 20px;
    line-height: 1;
    color: $slick-arrow-color;
    opacity: $slick-opacity-default;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
    left: -25px;
    [dir="rtl"] & {
        left: auto;
        right: -25px;
    }
    &:before {
        content: $slick-prev-character;
        [dir="rtl"] & {
            content: $slick-next-character;
        }
    }
}

.slick-next {
    right: -25px;
    [dir="rtl"] & {
        left: -25px;
        right: auto;
    }
    &:before {
        content: $slick-next-character;
        [dir="rtl"] & {
            content: $slick-prev-character;
        }
    }
}

/* Dots */

.slick-slider {
    margin-bottom: 30px;
}

.slick-dots {
    position: absolute;
    bottom: -45px;
    list-style: none;
    display: block;
    text-align: center;
    padding: 0;
    width: 100%;
    li {
        position: relative;
        display: inline-block;
        height: 20px;
        width: 20px;
        margin: 0 5px;
        padding: 0;
        cursor: pointer;
        button {
            border: 0;
            background: transparent;
            display: block;
            height: 20px;
            width: 20px;
            outline: none;
            line-height: 0px;
            font-size: 0px;
            color: transparent;
            padding: 5px;
            cursor: pointer;
            &:hover, &:focus {
                outline: none;
                &:before {
                    opacity: $slick-opacity-on-hover;
                }
            }
            &:before {
                position: absolute;
                top: 0;
                left: 0;
                content: $slick-dot-character;
                width: 20px;
                height: 20px;
                font-family: $slick-font-family;
                font-size: $slick-dot-size;
                line-height: 20px;
                text-align: center;
                color: $slick-dot-color;
                opacity: $slick-opacity-not-active;
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            }
        }
        &.slick-active button:before {
            color: $slick-dot-color-active;
            opacity: $slick-opacity-default;
        }
    }
}

glatte CSS

/* Slider */

.slick-slider {
    position: relative;
    margin: 0 auto;
    display: block;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -ms-touch-action: pan-y;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}
.slick-list {
    position: relative;
    overflow: hidden;
    display: block;
    margin: 0 auto;
    padding: 0;

    &:focus {
        outline: none;
    }

    &.dragging {
        cursor: pointer;
        cursor: hand;
    }
}
.slick-slider .slick-track,
.slick-slider .slick-list {
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.slick-track {
    position: relative;
    left: 0;
    top: 0;
    display: block;

    &:before,
    &:after {
        content: "";
        display: table;
    }

    &:after {
        clear: both;
    }

    .slick-loading & {
        visibility: hidden;
    }
}
.slick-slide {
    float: left;
    min-height: 1px;
    [dir="rtl"] & {
        float: right;
    }
    img {
        display: block;
    }
    &.slick-loading img {
        display: none;
    }

    display: none;

    &.dragging img {
        pointer-events: none;
    }

    .slick-initialized & {
        display: block;
    }

    .slick-loading & {
        visibility: hidden;
    }

    .slick-vertical & {
        display: block;
        height: auto;
        border: 1px solid transparent;
    }
}

Vorschau der Website

  • Können Sie bitte die richtige Antwort ankreuzen? Vielen Dank

    – Joan

    2. März 2016 um 21:55 Uhr

Benutzer-Avatar
Yoan

Slick hat eine sehr einfache Möglichkeit, seine Schaltflächen durch zwei Variablen in seiner eigenen Konfiguration anzupassen: prevArrow und nextArrow.

Beide Typen sind: string (html | jQuery Selektor) | Objekt (DOM-Knoten | jQuery-Objekt), sodass Sie in Ihrem Einstellungsschieberegler die Klassen festlegen können:

prevArrow: $('.prev')
nextArrow: $('.next')

und fügen Sie diesen Elementen die gewünschten Stile hinzu.

Zum Beispiel:

//HTML
<div class="slider-box _clearfix">
    <div class="slick-slider">
        <div>
            <img src="https://stackoverflow.com/questions/29876185/img/home_carousel/home_carorusel_1.jpg">
        </div>
        <div>
            <img src="img/home_carousel/home_carorusel_2.jpg">
        </div>
        <div>
            <img src="img/home_carousel/home_carorusel_3.jpg">
        </div>
        <div>
            <img src="img/home_carousel/home_carorusel_4.jpg">
        </div>
    </div>
</div>

<div class="paginator-center text-color text-center">
    <h6>VER MAS LANZAMIENTOS</h6>
    <ul>
        <li class="prev"></li>
        <li class="next"></li>
    </ul>
</div>

//JS
$(document).ready(function () {
  $('.slick-slider').slick({
      centerMode: true,
      centerPadding: '60px',
      slidesToShow: 3,
      prevArrow: $('.prev'),
      nextArrow: $('.next'),
});

//CSS
.paginator{
  position: relative;
  float: right;
  margin-bottom: 20px;

  li{
    margin-top: 20px;
    position: relative;
    float: left;

    margin-right: 20px;

    &.prev{
      display: block;
      height: 20px;
      width: 20px;
      background: url('../img/back.png') no-repeat;
    }

    &.next{
      display: block;
      height: 20px;
      width: 20px;
      background: url('../img/next.png') no-repeat;
    }
  }
}

  • prevArrow: $ (‘.prev’) nextArrow: $ (‘.next’) . Die falsche Position der Punkte hat mich für eine Minute verwirrt

    – MC

    20. Januar 2016 um 12:32 Uhr


  • Leider funktioniert das nicht, wenn es zwei oder mehr Slick-Schieberegler auf einer Seite gibt. Wenn dies der Fall ist, verschiebt jede dieser benutzerdefinierten Zurück-/Weiter-Schaltflächen alle Schieberegler auf dieser Seite. Wie ist es möglich, nur “dieses” DOM-Element als Prev/Next-Button für DIESEN spezifischen Slider zu definieren?

    – Juuro

    17. März 2016 um 11:18 Uhr


  • @Juuro Simple, Sie würden einfach einen spezifischeren Selektor hinzufügen, anstatt ihn nur zu verwenden '.prev' allein.

    – Sgnl

    19. Oktober 2017 um 23:59 Uhr

  • Es klappt! aber stellen Sie sicher, dass Sie ‘arrows:true’ gesetzt haben. Mit ‘arrows:false’ funktioniert es nicht

    – gtamboro

    29. Mai 2018 um 21:03 Uhr

Benutzer-Avatar
Asaf David

Mit dem können Sie ganz einfach Ihren eigenen Pfeilstil erstellen .slick-next:before und die .slick-prev:after Pseudo-Klassen.

Hier ist ein Beispiel:

.slick-prev:before {
  content: "<";
  color: red;
  font-size: 30px;
}

.slick-next:before {
  content: ">";
  color: red;
  font-size: 30px;
}

  • Nett, aber nicht ganz richtig. Sollte lauten: .slick-next:before { content: “>”; Farbe Rot; Schriftgröße: 30px; } .slick-prev:before {Inhalt: “<"; Farbe Rot; Schriftgröße: 30px; } (mit Version 1.6.0)

    – mhenry1384

    28. Januar 2017 um 2:21 Uhr


  • Bei mir funktioniert das nicht mit dem “Hover”-Effekt. Es wird auf die Standardgröße und den Standardinhalt zurückgesetzt. Was vermisse ich?

    – Adam Christianson

    11. Juli 2017 um 18:30 Uhr

  • Ich nehme an, sie müssen beide :before sein

    – Steve Moretz

    24. September 2019 um 8:20 Uhr

Benutzer-Avatar
Chamon Roy

es ist sehr leicht. Verwenden Sie den folgenden Code, es funktioniert für mich. Hier habe ich ein Fontawesome-Symbol verwendet, aber Sie können alles als Bild oder den Code eines anderen Symbols verwenden.

    $(document).ready(function(){
        $('.slider').slick({
            autoplay:true,
            arrows: true,
            prevArrow:"<button type="button" class="slick-prev pull-left"><i class="fa fa-angle-left" aria-hidden='true'></i></button>",
            nextArrow:"<button type="button" class="slick-next pull-right"><i class="fa fa-angle-right" aria-hidden='true'></i></button>"
        });
    });

Das hat bei mir funktioniert:

http://codepen.io/anon/pen/qNbWwK

Blenden Sie die Standardschaltflächen in CSS aus und verwenden Sie:

<!-- In HTML: -->
<p class="left">left</p>
<p class="right">right</p>

/* In the JS file */
$('.slider').slick({
  arrows: false
})

$('.left').click(function(){
  $('.slider').slick('slickPrev');
})

$('.right').click(function(){
  $('.slider').slick('slickNext');
})

Einfache Lösung:

$('.slick-slider').slick({      
    arrows: true,
    prevArrow:"<img class="a-left control-c prev slick-prev" src="https://stackoverflow.com/questions/29876185/YOUR LEFT ARROW IMAGE URL">",
    nextArrow:"<img class="a-right control-c next slick-next" src="YOUR RIGHT ARROW IMAGE URL">"
});

Bild-URLs können lokal oder cdn-artig sein (Websymbole usw.).

Beispiel-CSS (hier nach Bedarf anpassen, dies ist nur ein Beispiel dafür, was möglich ist):

.control-c {
    width: 30px;
    height: 30px;
}

Das hat bei mir gut funktioniert!

  • Funktioniert auch gut mit Inline-Svg

    – 00-BBB

    12. September 2019 um 14:24 Uhr

  • Dies sollte die akzeptierte Antwort sein! Es funktioniert einwandfrei und verursacht keine Fehler

    – weinde

    6. November 2020 um 9:15 Uhr

Benutzer-Avatar
Par

Wenn Sie sass verwenden, können Sie einfach die unten genannten Variablen festlegen,

$slick-font-family:FontAwesome;
$slick-prev-character: "\f053";
$slick-next-character: "\f054";

Diese ändern die Schriftfamilie, die von Slicks Design-CSS verwendet wird, und auch den Unicode für die Schaltflächen „Zurück“ und „Weiter“.

Andere sass-Variablen, die konfiguriert werden können, sind angegeben Glatte Github-Seite

  • Funktioniert auch gut mit Inline-Svg

    – 00-BBB

    12. September 2019 um 14:24 Uhr

  • Dies sollte die akzeptierte Antwort sein! Es funktioniert einwandfrei und verursacht keine Fehler

    – weinde

    6. November 2020 um 9:15 Uhr

Benutzer-Avatar
NikiRocco

Sie können FontAwesome “Content” -Werte verwenden und wie folgt per CSS anwenden. Diese wenden “Chevron rechts/links”-Symbole an.

.custom-slick .slick-prev:before {
    content: "";
    font-family: 'FontAwesome';
    font-size: 22px;
}
.custom-slick .slick-next:before {
    content: "";
    font-family: 'FontAwesome';
    font-size: 22px;
}

1157760cookie-checkÄndern Sie die Pfeiltasten im Slick-Schieberegler

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy