勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

「slick」で作成したスライダー画像にランキングの順位を表示する方法

「slick」で作成したスライダー画像に対して、ランキングの順位を表示したいというケースがあった。PHPが利用可能な環境であれば画像と一緒に順位も表示し、それをCSSで対応するような形を検討するがASPを用いたサイトのためPHPは利用不可だった。そのためCSSのみで対応する方法をメモ。

 

サンプル

https://taitan916.info/sample/slick/ranking/

スライダー画像右上に「〇位」と表示されるのが確認できる筈。

 

対応方法

ソースコード

<style>
body{
    counter-reset: number 0;
}
#slider{
    .slick-slide{
        position: relative;
    }
    .slick-slide::before{
        top: 10px;
        right: 10px;
        width: 35px;
        height: 35px;
        font-size: 1rem;
        content: counter(number) '位';
        counter-increment: number 1;
        position: absolute;
        background-color: #000;
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
    }
}

</style>

<div id="slider">
    <div><img src="./img/001.jpg"></div>
    <div><img src="./img/002.jpg"></div>
    <div><img src="./img/003.jpg"></div>
    <div><img src="./img/004.jpg"></div>
    <div><img src="./img/005.jpg"></div>
</div>

<script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css">
<script>
$(function(){
    $(`#slider`).slick({
        dots: true,
        infinite: false,
        slidesToShow: 1,
        centerMode: false,
        variableWidth: true
    });
});
</script>

解説等

infiniteをtrue(スライドのループを有効)にすると順位がずれるので注意すること。

 

リファレンス

counter()

https://developer.mozilla.org/ja/docs/Web/CSS/counter

counter-increment

https://developer.mozilla.org/ja/docs/Web/CSS/counter-increment

 - jQuery JavaScript CSS

  関連記事

「slick」でスライダー中央の下部にのみ指定したコンテンツを表示する方法

「slick」でスライダー画像の下部に何らかのコンテンツ(テキスト・リンク・別画 ...

Lightboxで画像拡大時にダウンロードリンクを設置する方法

Lightboxで画像拡大時にダウンロードリンクを設置したいと要望を受けた。もち ...

画像をドラッグ&ドロップでアップロード

■2015/04/15追記 以下記事の方が新しくて詳しい。 http://tai ...

jQueryで画像を遅延ロードする「jquery.lazyload.js」の利用方法

画像を遅延ロードさせたい時にはjQueryプラグインのlazyloadが便利。以 ...

「slick」でブラウザ幅がPCの場合はスライダーを表示し、スマホ幅の場合はスライダー無しにする方法

slickプラグインで画像スライダーを設置しているページがあり、PCのブラウザ幅 ...