Responsive Fullscreen Image Viewer With jQuery And CSS3
File Size: | 2.65 KB |
---|---|
Views Total: | 2884 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

This is a responsive, jQuery & CSS3 based image viewer where you're able to fade through a set of images in fullscreen mode just like a slider. Responsiveness based on CSS3 flexbox model.
How to use it:
1. Add image together with next/prev navigation and fullscreen toggle into the image viewer.
<div id="slider"> <div id="images"> <img src="1.jpg" id="1"/> <img src="2.jpg" id="2"/> <img src="3.jpg" id="3"/> </div> <div id="controls"> <div> <button id="previous"><</button> <button id="next">></button> </div> <button id="toggle-fullscreen"> F </button> </div> </div>
2. The core CSS to style the image viewer.
#slider { width: 50%; height: 350px; margin: 0 auto; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-flex-flow: column nowrap; -ms-flex-flow: column nowrap; flex-flow: column nowrap; } #slider.full { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; } #slider.full #images img { height: 100%; width: auto; vertical-align: center; } @media (max-width: 840px) { #slider.full #images img { width: 100%; height: auto; } } #slider #images { height: 90%; text-align: center; background: #292929; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; -webkit-align-content: center; -ms-flex-line-pack: center; align-content: center; } #slider #images img { height: 100%; } @media (max-width: 840px) { #slider #images img { height: auto; width: auto; max-height: 100%; max-width: 100%; } }
3. The required CSS styles for the controls.
#slider #controls { height: 10%; background: #f0f0f0; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-flex-flow: row nowrap; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } #slider #controls div { height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-flex-flow: row nowrap; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -webkit-box-pack: start; -webkit-justify-content: flex-start; -ms-flex-pack: start; justify-content: flex-start; } #slider #controls div button { height: 100%; } #slider #controls div #next { border-right: 2px solid white; } #slider #controls button { padding: 10px; background: transparent; border: none; outline: none; color: #292929; border-left: 2px solid white; width: 50px; } #slider #controls button:first-of-type { border-left: none; } #slider #controls button:active, #slider #controls button:hover, #slider #controls button:focus { outline: none; } #slider #controls button:hover { color: #4f4f4f; background: #cacaca; } #slider #controls #toggle-fullscreen { border-left: 2px solid white; }
4. Don't forget to load the necessary jQuery library at the bottom of the webpage.
<script src="//code.jquery.com/jquery.min.js"></script>
5. The JavaScript to active the image viewer.
$(document).ready(function() { var $last = $("#previous"); //previous button var $next = $("#next"); //next button var $full = $("#toggle-fullscreen"); //full screen toggle button var $car = $("#slider"); //the whole slider var $count = 1; //the current image var $total = 3; //the amount of images $("#images img").hide(); //hide all images $("#" + $count).show(); //except the index image $last.click(function() { //when the 'last' button is clicked $("#" + $count).fadeOut(300, function() { //fade out the currently shown image //if the count is > 1 if ($count > 1) { //decrement count $count--; } else { //else, loop back around so that the last image is shown $count = $total; } //find the next image $item = $("#" + $count); //fade in the next image $item.fadeIn(300); }); }) $next.click(function() { //when the 'next' button is clicked $("#" + $count).fadeOut(300, function() { //fade out the currently shown image //if the count is less than the total amount of image if ($count < $total) { //increment the count $count++; } else { //else, loop back around so that the first image is shown $count = 1; } //find the next image $item = $("#" + $count); //fade in the next image $item.fadeIn(300); }); }) $full.click(function() { //when the fullscreen toggle is clicked //if the slider is already full screen if ($car.hasClass('full')) { //remove the fullscreen class $car.removeClass('full'); //change the button icon to the 'F' $full.html('F'); } else { //else, add the fullscreen class $car.addClass('full'); //change the button text to the 'F' $full.html('F'); } }) })
This awesome jQuery plugin is developed by the_Northway. For more Advanced Usages, please check the demo page or visit the official website.