私は http://kenwheeler.github.io/slick/ を使用していますが、正常に機能していないようです。以下のコードを実行すると、CSSファイルとjsファイルが読み込まれているが、反映されていないことがわかります。たとえば、矢印はありません。
私が間違っているかもしれないものがありますか(注:滑らかなCSSとjsファイル、およびhtmlファイルはすべて同じフォルダー内にあります
<html>
<head>
<link rel="stylesheet" type="text/css" href="../Slick/slick.css" />
</head>
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="../Slick/slick.min.js"></script>
<h2>title</h2>
<script type="text/javascript">
$(document).ready(function(){
$('.single-item').slick();
});
});
</script>
<div>
<div class="single-item">
<div > <img src="../Slick/F1.jpg" alt="bkj"></div>
<div > <img src="../Slick/F1.jpg" alt="bkj"></div>
<div > <img src="../Slick/F1.jpg" alt="bkj"></div>
</div>
</div>
</body>
</html>
これは、矢印がデフォルトで白であるためです。そのため、白のページでは表示できません。
矢印が有効になっていることを確認してください:
$('.single-item').slick({
arrows: true
});
cssコードを追加して表示します:
<style>
.slick-prev:before, .slick-next:before {
color:red !important;
}
</style>
私にとっては、ラッパー<div class="content"> ... </div>
の内側に滑らかなカルーセルを追加すると機能しました。これは、ラッパーの外側にprev/nextボタン用のスペースを確保するために少し小さくなっています。
次のCSSは私のために働いています:
.content {
margin: auto;
padding: 20px;
width: 80%;
}
normalize.css
を使用して、前/次ボタンのセンタリングを正しく取得しました。ノーマライズなしでは、センタリングは完全ではありませんでした。
$('.slickslide').slick({
dots: true,
infinite: true,
speed: 500,
autoplay: true,
slidesToShow: 1,
slidesToScroll: 1});
.slickslide {
height: 200px;
background: lightgray;
}
body {
background-color: lightblue;
}
.content {
margin: auto;
padding: 20px;
width: 80%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.3/normalize.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.0/slick-theme.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.0/slick.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.0/slick.css" rel="stylesheet"/>
<div class="content">
<div class="slickslide" slick="">
<div>Syling of left and right arrow is OK now. Required normalize.css and a content wrap around the slickslide with a smaller width.</div>
<div>your content2</div>
<div>your content3</div>
</div>
</div>
私は同じ問題を抱えており、.single-item
divsion、これが私の解決策
<style>
.slick-prev {
margin-left: 40px;
}
.slick-next {
margin-right: 40px;
}
</style>
それはちょうど私のために働く
私はあなたのコードを試してみましたが、すべて問題ないようです。問題はページレイアウトに対処する必要があります。
これらのオプションを試して、カルーセルが正しく再生されているかどうかを確認できます
$(document).ready(function(){
$('.single-item').slick({
autoplay:true,
autoplaySpeed: 1000
});
});
そして、たとえば次のように、矢印を表示するためにcssルールを追加する必要があります。
<style>
body{
background: green;
}
.single-item{
margin-left: 10%;
margin-right: 10%;
}
</style>
次のcssをスタイリングに追加してください。これは、slick/index.htmlファイルのデフォルトでデモからのものです。
<style type="text/css">
html, body {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
}
.slider {
width: 50%;
margin: 100px auto;
}
.slick-slide {
margin: 0px 20px;
}
.slick-slide img {
width: 100%;
}
.slick-prev:before,
.slick-next:before {
color: black;
}
</style>
これは、3つのコンテンツdivのみを含む提供されたサンプルコードを使用する場合に発生する可能性があります。さらに2つのコンテンツdivを追加すると、矢印、ドット、および自動再生が初期化されました。
したがって、上記の答えはどれも何もせず、ほとんどは無実です。 DOMを検査しましたが、カルーセルの1つのボタンがそこにもありません。そのため、ボタンが表示されません(背景が白いためではありません)。同じ設定の別のカルーセルがあり、矢印が正常に表示されます。まだこれを調査しようとしており、解決策が見つかったら更新します。
解決策:私の問題では、スリックを適用するdivをラップするコンテナーdivが必要なようです。そうでなければ、動作しません。
私の問題を解決したのは、適切なz-indexがなかったことです
.slick-prev, .slick-next {
z-index: 1000;
}
問題を解決しました