W tym wpisie pokażę Ci jak zrobić automatycznie przesuwającą się karuzelę. To rozwiązanie sprawdzi się świetnie np. w galerii lub portfolio. Zaczynajmy 🙂
Na początku pobierzmy z tej strony potrzebne pliki. Klikając na przycisk DOWNLOAD for FREE pobierzemy archiwum, z którego użyjemy trzech plików:
- owl.carousel.min.js
- owl.carousel.css
- owl.theme.css
Podepnijmy te pliki do podstawowej struktury HTML:
<!DOCTYPE html>
<html lang="pl">
<head>
<title>Karuzela</title>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="owl-carousel/owl.carousel.css" type="text/css">
<link rel="stylesheet" href="owl-carousel/owl.theme.css" type="text/css">
<style type="text/css">
</style>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="owl-carousel/owl.carousel.min.js"></script>
<script>
</script>
</body>
</html>
Napiszmy teraz pomiędzy znacznikami body strukturę naszej karuzeli:
<div class="carousel">
<div class="carousel-slider">
<div class="container">
<div id="example-carousel" class="owl-carousel">
<div class="carousel-item">
<img src="images/owl_slider/1.jpg" alt="">
<div class="carousel-hover">
<div class="carousel-hover-inner">
<h3>Przykładowy post</h3>
<p>17 września 2015</p>
</div>
</div>
</div>
<div class="carousel-item">
<img src="images/owl_slider/2.jpg" alt="">
<div class="carousel-hover">
<div class="carousel-hover-inner">
<h3>Przykładowy post</h3>
<p>17 września 2015</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Div o klasie carousel jest kontenerem, który obejmuje całą zawartość karuzeli. Wewnątrz diva o identyfikatorze example-carousel znajdują się dwa elementy karuzeli, każdy z tą samą klasą – carousel-item. Dodając kolejne divy o tej klasie, dodajemy kolejne elementy karuzeli.
Możemy teraz dodać pomiędzy wcześniej utworzonymi znacznikami <style> nasze style CSS:
.container {
max-width: 1200px;
margin: 0 auto;
clear: both;
padding: 0 15px;
}
.carousel {
padding: 55px 0;
text-align: center;
}
.owl-controls {
margin-top: 60px;
}
.carousel-item {
width: 100%;
}
.carousel-item img {
width: 100%;
cursor: move;
}
.carousel-item:hover .carousel-hover {
opacity: 1;
}
.carousel-item:hover h3 {
transform: translateX(0%);
transform: translateY(0%);
transform: translateZ(0%);
}
.carousel-item:hover p {
transform: translateX(0%);
transform: translateY(0%);
transform: translateZ(0%);
}
.carousel-hover {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
text-align: center;
transition: 0.2s all;
overflow: hidden;
background-color: rgba(0, 155, 0, 0.7);
opacity: 0;
}
.carousel-hover-inner {
position: absolute;
width: 100%;
top: 50%;
transform: translateY(-50%);
}
.carousel-hover-inner h3 {
font-size: 24px;
color: #fff;
transform: translateX(0%);
transform: translateY(-400%);
transform: translateZ(0%);
transition: 0.4s all;
}
.carousel-hover-inner p {
color: #fff;
margin-bottom: 20px;
transform: translateX(0%);
transform: translateY(-400%);
transform: translateZ(0%);
transition: 0.4s all;
}
Reguły odnoszą się głównie do nakładki, która pojawia się po najechaniu na element karuzeli. Tworzą one nakładkę oraz animują elementy w jej wnętrzu. Żadna z tych reguł nie jest wymagana do poprawnego działania wtyczki owlCarousel 🙂
Możemy teraz wewnątrz znaczników <script> aktywować wtyczkę:
$(document).ready(function(){
$('#example-carousel').owlCarousel({
autoPlay: 10000,
items: 3,
itemsDesktopSmall: [1199, 2],
itemsTablet: [768, 1]
});
});
Na elemencie o identyfikatorze example-carousel wywołujemy funkcję owlCarousel z opcjami:
- autoplay – przyjmuje false (brak automatycznego przewijania) lub liczbę milisekund, pomiędzy przewijaniem
- items – przyjmuje liczbę elementów wyświetlanych w jednym czasie na ekranie (elementy są automatycznie skalowane)
- itemsDesktopSmall – przyjmuje tablicę z dwoma elementami – pierwszy określa szerokość strony, poniżej której liczba wyświetlanych elementów ulegnie zmianie (w tym przypadku na 2)
- itemsTablet – analogicznie jak powyżej
W tym momencie karuzela jest już gotowa 🙂
Przykład możesz zobaczyć tutaj.
Paczkę możesz pobrać tutaj.
Marek
ciekawy efekt 🙂
dzięki za poradnik.