htmlとcssを勉強し始めたばかりの初心者です。
スライダーをコピペで実装してみよう、というブログがあったので試してみたのですが、うまくできません。
作りたいのは、複数枚のスライダー(現状は3枚)で、すべて同じ大きさで横並び、左右の画像が少しだけ見切れていて、左右の画像は透過されている(中央を目立たせる為)ものです。※拾い画ですが添付します。
これのボタンを、中央の画像の上に配置したいのですが、ボタンを画像にしようとしたところ、ボタンとして機能しなくなってしまいました。
色々検索してみましたが、そもそもtheme.cssをいじるものなのか、メインのcssをいじるものなのかもわからず(常識的すぎて皆さん書いていないのかも)、困っています。
themeの内容をひとつひとつコピペして検索かけてみましたが、それもうまく答えが出てこなくて、わかりそうでわからない状態です。
まず先に導入したファイルと、コードを記載の後、経緯と理想を書きます。
追加したファイルは下記の通りです。
・java.slider.js
・jquery-3.5.1.min.js
・slick.min.js
・slick-theme.css
・slick.css
※同じフォルダ内にfontsフォルダあり(slick)
各コードは下記の通りです。
●head
<head> . . <link rel="stylesheet" href="./js/slick-theme.css"> <link rel="stylesheet" href="./js/slick.css"> <link rel="stylesheet" href="stylesheet.css"> . . </head>
●body
<body> . . <script type="text/javascript" src="./js/jquery-3.5.1.min.js"></script> <script type="text/javascript" src="./js/slick.min.js"></script> <script type="text/javascript" src="./js/java.slider.js"></script> . . </body>
●スライダー部分のHTML
<div class="slider mypattern"> <div><img src="./img/slide1.jpg"></div> <div><img src="./img/slide2.jpg"></div> <div><img src="./img/slide3.jpg"></div> </div>
●スライダー部分のcss(stylesheet.css)
.slider { width: 100%;/*数値をいじっても何も変わらない……どこの部分の指定?*/ margin: 0 auto; } .slick-slide img { width: 100%; height: auto; } .mypattern { width: 100%; } .mypattern .slick-slide { margin: 2px; } .mypattern .slick-slide:not(.slick-center) { -webkit-filter: opacity(80%); -moz-filter: opacity(80%); -o-filter: opacity(80%); -ms-filter: opacity(80%); filter: opacity(80%); transition: 0.2s linear; }
●prev/nextボタンを画像にしたくてコピペ(stylesheet.css)
.slick-prev::before { content: url(./img/slide_prev.png); } .slick-next::before { content: url(./img/slide_next.png); } .slick-prev{ left: 110px;/*なぜか右と左で位置がずれる?*/ z-index: 100; } .slick-next{ right: 160px;/*なぜか右と左で位置がずれる?*/ z-index: 100; }
【経緯】
①画像を適用せずにメインで使用しているstylesheet.cssにスライダー部分のcssをそのままコピペした場合
→ボタンが表示されない
(色を#000→#fffにしたり、leftやrightを50-200pxの範囲内でいじってみたり、z-indexを100にしたりしたが、変化無し)
(それっぽいところにカーソルを持っていくと、カーソルは指の形に変化する上、ボタンとして反応するので、見えていないだけで存在はしている)
(横スクロールが発生し、右側だけ余白ができる※ボタンが右側しか存在していない)
(左右の画像はjava.slider.jsのcenterPaddingで'12%'に設定)
②theme.cssの記述をheadから削除すると、スライドの上下にブラウザの標準形式でボタンが出た。
③theme.cssの記述をheadから削除した状態で、ボタンに画像を適用したところ、スライドの上下に出たブラウザの標準形式のボタンの中に、画像が入り込んでしまった。<■prev>のような感じ。
④theme.cssの記述をheadに戻した状態で、ボタンに画像を適用したところ、中央の画像の垂直方向真ん中にボタンにしたい画像がきちんと理想通りに表示されたが、ボタンとして機能しなくなってしまった。
(theme.cssを書き換えたりもしてみたが、どこをいじっても変化がなかった)
【どうしたいか】
④の状態でボタンを機能させたい。
そもそも理解が及んでいないのにコピペでやろうとしているのが原因とはわかっているのですが、これが数行程度の書き換えで解決できるような内容でしたら、解決したいと思っています。
また、これをきっかけにもっとscriptの類を勉強していきたいです。
よろしくお願い致します。
追記
●java.slider.jsの中身
$(document).ready(function() { $('.mypattern').slick({ autoplay: true, autoplaySpeed: 5500, speed: 800, dots: false, arrows: true, centerMode: true, centerPadding: '12%', }); });
●矢印サイズ……74×74px
●スライド画像サイズ……960×504px
※本当は中央の画像を960pxで固定し、左右の画像の見切れ幅をウィンドウサイズによって変化するようにしたかったのですが、どこをいじってもうまくいかず、現状のコードではただ画面に対して左右が12%見えるという設定になっています。
回答1件
あなたの回答
tips
プレビュー