「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
関連記事
-
-
フォームからアップロードした画像にPHPで任意のテキストを追加する方法
以前フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を追加する記事 ...
-
-
PHPで画像を分割し並べ替えて出力したものをJavaScriptで復元する方法
ある電子書籍サイトをブラウザの開発者ツールで見てみたところ、PHPでページ画像を ...
-
-
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズ
PHPで縦横どちらかが指定の長さを超えた場合、 比率を保ったままリサイズしたかっ ...
-
-
PHPでスマホ(iPhone / Android)に画像をダウンロードさせる方法とダウンロード後の保存場所について
PHPで作ったシステムにスマホ(iPhone / Android)でアクセスし何 ...
-
-
smart_resize_imageで縦横の比率関係なく、固定リサイズ
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...