🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

The jQuery version of the SmartPhoto library which lets you create an accessible, responsive, mobile-friendly image viewer where the users are able to view all images in an easy-to-navigate modal popup.

gallery-lightbox image-viewer

Documentation

SmartPhoto

npm version CircleCI npm download GitHub license

The most easy to use responsive image viewer especially for mobile devices

See https://appleple.github.io/SmartPhoto/ for complete docs and demos
If you are Japasese, See here https://www.appleple.com/blog/javascript/smartphoto-js.html instead.

Feature

  • Intuitive gestures such as pinch-in/pinch-out/drag/swipe
  • Use Accelerometer to move images
  • Accessible from keyboards and screen-readers
  • Show pictures via URL hash
  • Can make photo groups

Installation

via npm

npm install smartphoto --save

or yarn

yarn add smartphoto

Usage

require

const SmartPhoto = require('smartphoto');

smartphoto.js

document.addEventListener('DOMContentLoaded',function(){     new SmartPhoto(".js-smartphoto"); });

jquery-smartphoto.js

$(function(){     $(".js-smartphoto").SmartPhoto(); });

Basic Standalone Usage

<a href="./assets/large-bear.jpg" class="js-smartphoto" data-caption="bear" data-id="bear" data-group="0">   <img src="./assets/bear.jpg" width="360"/> </a> <a href="./assets/large-camel.jpg" class="js-smartphoto" data-caption="camel" data-id="camel" data-group="0">   <img src="./assets/camel.jpg" width="360"/> </a> <a href="./assets/large-rhinoceros.jpg" class="js-smartphoto" data-caption="rhinoceros" data-id="sai" data-group="0">   <img src="./assets/rhinoceros.jpg" width="360"/> </a> <link rel="stylesheet" href="./css/smartphoto.min.css"> <script src="./js/smartphoto.js"></script> <script> document.addEventListener('DOMContentLoaded',function(){   new SmartPhoto(".js-smartphoto"); }); </script>

Option

variable description default
arrows prev/next arrows true
nav navigation images at the bottom true
useOrientationApi use accelerometer to move images true
resizeStyle resize images to fill/fit on the screen 'fill'
animationSpeed animation speed when switching images 300
forceInterval frequency to apply force to images 10

Hide parts

document.addEventListener('DOMContentLoaded',function(){     new SmartPhoto(".js-smartphoto",{         arrows: false,         nav: false     }); });

Fit/Fill Option

You can choose if you want to scale images to fit/fill

document.addEventListener('DOMContentLoaded',function(){   new SmartPhoto(".js-smartphoto",{       resizeStyle: 'fit'   }); });

Event

// when the modal opened photo.on('open',function(){     console.log('open'); }); // when the modal closed photo.on('close',function(){     console.log('close'); }); // when all images are loaded photo.on('loadall',function(){     console.log('loadall'); }); // when photo is changed photo.on('change',function(){     console.log('change'); }); // when swipe started photo.on('swipestart',function(){     console.log('swipestart'); }); // when swipe ended photo.on('swipeend',function(){     console.log('swipeend'); }); // when zoomed in photo.on('zoomin',function(){     console.log('zoomin'); }); // when zoomed out photo.on('zoomout',function(){     console.log('zoomout'); });

SCSS

variable description default
$animation-speed animation speed when switching images .3s
$backdrop-color backdrop color when viewing images rgba(0, 0, 0, 1)
$header-color header color rgba(0, 0, 0, .2)

Download

Download ZIP

Github

https://github.com/appleple/SmartPhoto

Contributor

@steelydylan

License

Code and documentation copyright 2017 by appleple, Inc. Code released under the MIT License.


You May Also Like