Efekt zoomowania zdjęcia w jQuery
Napiszemy skrypt do zoomowania zdjęcia w jQuery. Wykorzystamy właściwość css background-size. Będziemy ją modyfikować po kliknięciu na przycisk zoom in. Najpierw wstawmy kod html (2 przyciski i obrazek).
<div class="picture"></div> <button class="zoom">Zoom In</button> <button class="zoomout">Zoom Out</button>Obrazek jest divem, któremu nadamy background-image. Kod css wykorzystany w przykładzie jest następujący.
.picture {
margin: 30px;
width: 300px;
height: 180px;
background-image: url('flowers.jpg');
background-repeat:no-repeat;
background-position: 50% 50%;
background-size: 300px 180px;
-webkit-transition: all 2.5s ease-in-out;
-moz-transition: all 2.5s ease-in-out;
-ms-transition: all 2.5s ease-in-out;
-o-transition: all 2.5s ease-in-out;
transition: all 2.5s ease-in-out
}
.picture.zoom {
background-size: 1200px 720px !important;
}
Kod javascript przedstawia się następująco.
var picture = $('.picture:eq(0)'), picture_bg_size = picture.css('background-size');
$('.zoom:eq(0)').on('click', function() {
if (!picture.hasClass('zoom'))
{
picture.addClass('zoom');
}
});
$('.zoomout:eq(0)').on('click', function() {
picture.removeClass('zoom');
picture.css('background-size', picture_bg_size);
});
Najpierw łapiemy div obrazka oraz jego właściwość background-size.
Potem wywołujemy akcje w zależności, który przycisk został kliknięty (zoom in czy zoom out) tzn.
manipulujemy właściwością background-size powiększając lub zmniejszając zdjęcie odpowiednio.
Działający przykład.
