├── src ├── i │ ├── sprite.sketch │ │ ├── fonts │ │ ├── version │ │ ├── Data │ │ └── QuickLook │ │ │ ├── Preview.png │ │ │ └── Thumbnail.png │ ├── fotorama.png │ └── fotorama@2x.png ├── js │ ├── cache.js │ ├── measures.js │ ├── _.js │ ├── intro.js │ ├── outro.js │ ├── auto-initialization.js │ ├── skip.js │ ├── instances.js │ ├── fn-fotorama.js │ ├── wheel.js │ ├── fullscreen.js │ └── bez.js ├── templates │ ├── style.jst │ └── video.jst ├── scss │ ├── _mixins.scss │ └── _shadows.scss └── example │ └── example.html ├── test ├── i │ ├── fit │ │ ├── Frog.jpg │ │ ├── frog.png │ │ ├── Elephant.jpg │ │ ├── elephant.png │ │ └── index.html │ ├── macro2 │ │ ├── 1.jpg │ │ ├── 10.jpg │ │ ├── 11.jpg │ │ ├── 12.jpg │ │ ├── 13.jpg │ │ ├── 14.jpg │ │ ├── 15.jpg │ │ ├── 16.jpg │ │ ├── 17.jpg │ │ ├── 18.jpg │ │ ├── 19.jpg │ │ ├── 2.jpg │ │ ├── 20.jpg │ │ ├── 21.jpg │ │ ├── 22.jpg │ │ ├── 23.jpg │ │ ├── 24.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ ├── 8.jpg │ │ ├── 9.jpg │ │ ├── 1-lo.jpg │ │ ├── 2-lo.jpg │ │ ├── 4-lo.jpg │ │ ├── 5-lo.jpg │ │ ├── 6-lo.jpg │ │ ├── 7-lo.jpg │ │ ├── 8-lo.jpg │ │ ├── 9-lo.jpg │ │ ├── 1-thumb.jpg │ │ ├── 10-lo.jpg │ │ ├── 11-lo.jpg │ │ ├── 12-lo.jpg │ │ ├── 13-lo.jpg │ │ ├── 14-lo.jpg │ │ ├── 15-lo.jpg │ │ ├── 16-lo.jpg │ │ ├── 17-lo.jpg │ │ ├── 18-lo.jpg │ │ ├── 19-lo.jpg │ │ ├── 2-thumb.jpg │ │ ├── 20-lo.jpg │ │ ├── 21-lo.jpg │ │ ├── 22-lo.jpg │ │ ├── 23-lo.jpg │ │ ├── 24-lo.jpg │ │ ├── 4-thumb.jpg │ │ ├── 5-thumb.jpg │ │ ├── 6-thumb.jpg │ │ ├── 7-thumb.jpg │ │ ├── 8-thumb.jpg │ │ ├── 9-thumb.jpg │ │ ├── 10-thumb.jpg │ │ ├── 11-thumb.jpg │ │ ├── 12-thumb.jpg │ │ ├── 13-thumb.jpg │ │ ├── 14-thumb.jpg │ │ ├── 15-thumb.jpg │ │ ├── 16-thumb.jpg │ │ ├── 17-thumb.jpg │ │ ├── 18-thumb.jpg │ │ ├── 19-thumb.jpg │ │ ├── 20-thumb.jpg │ │ ├── 21-thumb.jpg │ │ ├── 22-thumb.jpg │ │ ├── 23-thumb.jpg │ │ └── 24-thumb.jpg │ ├── nyc │ │ ├── KIOSK.jpg │ │ ├── dudes.jpg │ │ ├── eyes.jpg │ │ ├── flipoff.jpg │ │ ├── smoking.jpg │ │ ├── acapella.jpg │ │ ├── crazyjohn.jpg │ │ ├── freakout.jpg │ │ ├── guy-in-car.jpg │ │ ├── italianguy.jpg │ │ ├── lift-dude.jpg │ │ ├── streetlook.jpg │ │ ├── explanation.jpg │ │ ├── facing-wind.jpg │ │ ├── guy-in-park.jpg │ │ ├── thumbs │ │ │ ├── KIOSK.jpg │ │ │ ├── dudes.jpg │ │ │ ├── eyes.jpg │ │ │ ├── acapella.jpg │ │ │ ├── flipoff.jpg │ │ │ ├── freakout.jpg │ │ │ ├── smoking.jpg │ │ │ ├── crazyjohn.jpg │ │ │ ├── guy-in-car.jpg │ │ │ ├── italianguy.jpg │ │ │ ├── lift-dude.jpg │ │ │ ├── streetlook.jpg │ │ │ ├── explanation.jpg │ │ │ ├── facing-wind.jpg │ │ │ ├── guy-in-park.jpg │ │ │ ├── ladies-riding.jpg │ │ │ ├── two-umbrellas.jpg │ │ │ ├── woman-reading.jpg │ │ │ ├── dudeintheground.jpg │ │ │ ├── severedhead-lo.jpg │ │ │ ├── father-son-looking.jpg │ │ │ ├── homeless-sleeping.jpg │ │ │ └── index.html │ │ ├── dudeintheground.jpg │ │ ├── ladies-riding.jpg │ │ ├── severedhead-lo.jpg │ │ ├── two-umbrellas.jpg │ │ ├── woman-reading.jpg │ │ ├── homeless-sleeping.jpg │ │ ├── father-son-looking.jpg │ │ └── index.html │ ├── me │ │ ├── portrait.jpg │ │ ├── portrait.png │ │ └── index.html │ ├── okonechnikov │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ ├── 8.jpg │ │ ├── 9.jpg │ │ ├── 10.jpg │ │ ├── 11.jpg │ │ ├── 12.jpg │ │ ├── 13.jpg │ │ ├── 14.jpg │ │ ├── 15.jpg │ │ ├── 16.jpg │ │ ├── 17.jpg │ │ ├── 18.jpg │ │ ├── 19.jpg │ │ ├── 20.jpg │ │ ├── 21.jpg │ │ ├── 22.jpg │ │ ├── 23.jpg │ │ ├── 24.jpg │ │ ├── 25.jpg │ │ ├── 26.jpg │ │ ├── 27.jpg │ │ ├── 28.jpg │ │ ├── 29.jpg │ │ ├── 30.jpg │ │ ├── 1-lo.jpg │ │ ├── 10-lo.jpg │ │ ├── 11-lo.jpg │ │ ├── 12-lo.jpg │ │ ├── 13-lo.jpg │ │ ├── 14-lo.jpg │ │ ├── 15-lo.jpg │ │ ├── 16-lo.jpg │ │ ├── 17-lo.jpg │ │ ├── 18-lo.jpg │ │ ├── 19-lo.jpg │ │ ├── 2-lo.jpg │ │ ├── 20-lo.jpg │ │ ├── 21-lo.jpg │ │ ├── 22-lo.jpg │ │ ├── 23-lo.jpg │ │ ├── 24-lo.jpg │ │ ├── 25-lo.jpg │ │ ├── 26-lo.jpg │ │ ├── 27-lo.jpg │ │ ├── 28-lo.jpg │ │ ├── 29-lo.jpg │ │ ├── 3-lo.jpg │ │ ├── 30-lo.jpg │ │ ├── 4-lo.jpg │ │ ├── 5-lo.jpg │ │ ├── 6-lo.jpg │ │ ├── 7-lo.jpg │ │ ├── 8-lo.jpg │ │ ├── 9-lo.jpg │ │ ├── 1-thumb.jpg │ │ ├── 10-thumb.jpg │ │ ├── 11-thumb.jpg │ │ ├── 12-thumb.jpg │ │ ├── 13-thumb.jpg │ │ ├── 14-thumb.jpg │ │ ├── 15-thumb.jpg │ │ ├── 16-thumb.jpg │ │ ├── 17-thumb.jpg │ │ ├── 18-thumb.jpg │ │ ├── 19-thumb.jpg │ │ ├── 2-thumb.jpg │ │ ├── 20-thumb.jpg │ │ ├── 21-thumb.jpg │ │ ├── 22-thumb.jpg │ │ ├── 23-thumb.jpg │ │ ├── 24-thumb.jpg │ │ ├── 25-thumb.jpg │ │ ├── 26-thumb.jpg │ │ ├── 27-thumb.jpg │ │ ├── 28-thumb.jpg │ │ ├── 29-thumb.jpg │ │ ├── 3-thumb.jpg │ │ ├── 30-thumb.jpg │ │ ├── 4-thumb.jpg │ │ ├── 5-thumb.jpg │ │ ├── 6-thumb.jpg │ │ ├── 7-thumb.jpg │ │ ├── 8-thumb.jpg │ │ └── 9-thumb.jpg │ ├── orion-art │ │ ├── 5-a.jpg │ │ ├── 5-b.jpg │ │ ├── 5-c.jpg │ │ └── index.html │ ├── getwear │ │ ├── IMG_5017.jpg │ │ ├── IMG_5020.jpg │ │ ├── IMG_5021.jpg │ │ └── index.html │ ├── dailymotion │ │ ├── xu4jqv.jpg │ │ ├── xxgmlg.jpg │ │ └── index.html │ ├── flowplayer │ │ ├── playful.jpg │ │ ├── functional.jpg │ │ ├── minimalist.jpg │ │ └── index.html │ ├── mousefish │ │ ├── fish_01.jpg │ │ ├── fish_02.jpg │ │ ├── fish_03.jpg │ │ ├── mouse_01.jpg │ │ ├── mouse_02.jpg │ │ ├── mouse_03.jpg │ │ ├── parrot_01.jpg │ │ ├── parrot_02.jpg │ │ ├── parrot_03.jpg │ │ ├── worm_01.jpg │ │ ├── worm_02.jpg │ │ ├── worm_03.jpg │ │ ├── octopus_01.jpg │ │ ├── octopus_02.jpg │ │ ├── octopus_03.jpg │ │ └── index.html │ └── index.html ├── #119 │ ├── fotorama.png │ ├── fotorama@2x.png │ ├── index.html │ ├── app.js │ └── example.html ├── flowplayer │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── index.html │ ├── 1.html │ ├── 3.html │ └── 2.html ├── specs │ ├── _helpers.js │ ├── nav.js │ ├── no-css-no-throw.js │ ├── dimensions.js │ ├── jquery-1.6.4.js │ ├── video.js │ ├── initialization.js │ ├── index.html │ ├── shuffle.js │ ├── set-options.js │ └── basic.js ├── experiments │ ├── right.js │ ├── select.html │ ├── index.html │ └── animation-chain.html ├── master │ └── index.html ├── assets │ └── index.html ├── index.sh ├── speed │ ├── index.html │ ├── speed-helpers.js │ ├── hide-addClass-detach.html │ └── data.html ├── utils.html ├── link-to-fotorama-page.html ├── sites │ └── index.html ├── jquery │ └── index.html ├── no-css.html ├── basic.html ├── basic--no-js.html ├── video--force-youtube-hd.html ├── html-shwr.html ├── auto-size.html ├── base--312.html ├── initialization.html ├── load-data.html ├── loop--1.html ├── loop.html ├── json.html ├── loop--2.html ├── no-jquery.html ├── responsive.html ├── hidden-before-ready.html ├── base--small.html ├── video-flowplayer.html ├── transition-duration.html ├── video-custom.html ├── start-index.html ├── dissolve--html.html ├── base--no-click.html ├── autoplay--loop.html ├── initialization--2.html ├── base.html ├── base--dimensions.html ├── base--show.html ├── tap-event.html ├── auto-false.html ├── fit--501.html ├── squares.html ├── jquery-1.6.4.html ├── iframes.html ├── __base.html ├── dissolve--plain.html ├── html.html ├── hash--23.html ├── full-window.html ├── issue--144.html ├── meteor.html ├── mousefish.html ├── rtl.html ├── constrained.html ├── html-selectable.html ├── startindex.html ├── fullscreen-native.html ├── html-with-images.html ├── base--iframe.html ├── html-with-thumbs.html ├── ul.html ├── issue--14.html ├── fullscreen-big.html ├── glimpse.html ├── iframe.html ├── base--1.html ├── datalabaratory.html ├── issue--26.html ├── html-with-links.html ├── crossfade.html ├── autoplay.html ├── dissolve.html ├── transition.html ├── full-window-n-nav.html ├── clicktransition.html └── hash.html ├── .gitignore ├── fotorama.jquery.json ├── package.json ├── MIT-LICENSE ├── README.md └── index.html /src/i/sprite.sketch/fonts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/i/sprite.sketch/version: -------------------------------------------------------------------------------- 1 | 14 -------------------------------------------------------------------------------- /src/js/cache.js: -------------------------------------------------------------------------------- 1 | $.Fotorama.cache = {}; -------------------------------------------------------------------------------- /src/js/measures.js: -------------------------------------------------------------------------------- 1 | $.Fotorama.measures = {}; -------------------------------------------------------------------------------- /src/js/_.js: -------------------------------------------------------------------------------- 1 | // My Underscore :-) 2 | var _ = {}; -------------------------------------------------------------------------------- /src/js/intro.js: -------------------------------------------------------------------------------- 1 | (function (window, document, location, $, undefined) { 2 | "use strict"; -------------------------------------------------------------------------------- /src/js/outro.js: -------------------------------------------------------------------------------- 1 | })(window, document, location, typeof jQuery !== 'undefined' && jQuery); 2 | -------------------------------------------------------------------------------- /src/i/fotorama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/src/i/fotorama.png -------------------------------------------------------------------------------- /test/i/fit/Frog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/fit/Frog.jpg -------------------------------------------------------------------------------- /test/i/fit/frog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/fit/frog.png -------------------------------------------------------------------------------- /test/i/macro2/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/1.jpg -------------------------------------------------------------------------------- /test/i/macro2/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/10.jpg -------------------------------------------------------------------------------- /test/i/macro2/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/11.jpg -------------------------------------------------------------------------------- /test/i/macro2/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/12.jpg -------------------------------------------------------------------------------- /test/i/macro2/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/13.jpg -------------------------------------------------------------------------------- /test/i/macro2/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/14.jpg -------------------------------------------------------------------------------- /test/i/macro2/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/15.jpg -------------------------------------------------------------------------------- /test/i/macro2/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/16.jpg -------------------------------------------------------------------------------- /test/i/macro2/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/17.jpg -------------------------------------------------------------------------------- /test/i/macro2/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/18.jpg -------------------------------------------------------------------------------- /test/i/macro2/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/19.jpg -------------------------------------------------------------------------------- /test/i/macro2/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/2.jpg -------------------------------------------------------------------------------- /test/i/macro2/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/20.jpg -------------------------------------------------------------------------------- /test/i/macro2/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/21.jpg -------------------------------------------------------------------------------- /test/i/macro2/22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/22.jpg -------------------------------------------------------------------------------- /test/i/macro2/23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/23.jpg -------------------------------------------------------------------------------- /test/i/macro2/24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/24.jpg -------------------------------------------------------------------------------- /test/i/macro2/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/4.jpg -------------------------------------------------------------------------------- /test/i/macro2/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/5.jpg -------------------------------------------------------------------------------- /test/i/macro2/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/6.jpg -------------------------------------------------------------------------------- /test/i/macro2/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/7.jpg -------------------------------------------------------------------------------- /test/i/macro2/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/8.jpg -------------------------------------------------------------------------------- /test/i/macro2/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/9.jpg -------------------------------------------------------------------------------- /test/i/nyc/KIOSK.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/KIOSK.jpg -------------------------------------------------------------------------------- /test/i/nyc/dudes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/dudes.jpg -------------------------------------------------------------------------------- /test/i/nyc/eyes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/eyes.jpg -------------------------------------------------------------------------------- /src/i/fotorama@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/src/i/fotorama@2x.png -------------------------------------------------------------------------------- /test/#119/fotorama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/#119/fotorama.png -------------------------------------------------------------------------------- /test/flowplayer/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/flowplayer/1.jpg -------------------------------------------------------------------------------- /test/flowplayer/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/flowplayer/2.jpg -------------------------------------------------------------------------------- /test/flowplayer/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/flowplayer/3.jpg -------------------------------------------------------------------------------- /test/i/macro2/1-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/1-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/2-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/2-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/4-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/4-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/5-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/5-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/6-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/6-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/7-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/7-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/8-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/8-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/9-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/9-lo.jpg -------------------------------------------------------------------------------- /test/i/me/portrait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/me/portrait.jpg -------------------------------------------------------------------------------- /test/i/me/portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/me/portrait.png -------------------------------------------------------------------------------- /test/i/nyc/flipoff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/flipoff.jpg -------------------------------------------------------------------------------- /test/i/nyc/smoking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/smoking.jpg -------------------------------------------------------------------------------- /src/i/sprite.sketch/Data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/src/i/sprite.sketch/Data -------------------------------------------------------------------------------- /test/#119/fotorama@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/#119/fotorama@2x.png -------------------------------------------------------------------------------- /test/i/fit/Elephant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/fit/Elephant.jpg -------------------------------------------------------------------------------- /test/i/fit/elephant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/fit/elephant.png -------------------------------------------------------------------------------- /test/i/macro2/1-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/1-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/10-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/10-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/11-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/11-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/12-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/12-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/13-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/13-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/14-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/14-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/15-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/15-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/16-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/16-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/17-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/17-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/18-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/18-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/19-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/19-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/2-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/2-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/20-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/20-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/21-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/21-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/22-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/22-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/23-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/23-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/24-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/24-lo.jpg -------------------------------------------------------------------------------- /test/i/macro2/4-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/4-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/5-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/5-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/6-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/6-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/7-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/7-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/8-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/8-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/9-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/9-thumb.jpg -------------------------------------------------------------------------------- /test/i/nyc/acapella.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/acapella.jpg -------------------------------------------------------------------------------- /test/i/nyc/crazyjohn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/crazyjohn.jpg -------------------------------------------------------------------------------- /test/i/nyc/freakout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/freakout.jpg -------------------------------------------------------------------------------- /test/i/nyc/guy-in-car.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/guy-in-car.jpg -------------------------------------------------------------------------------- /test/i/nyc/italianguy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/italianguy.jpg -------------------------------------------------------------------------------- /test/i/nyc/lift-dude.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/lift-dude.jpg -------------------------------------------------------------------------------- /test/i/nyc/streetlook.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/streetlook.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/1.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/2.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/3.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/4.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/5.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/6.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/7.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/8.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/9.jpg -------------------------------------------------------------------------------- /test/i/orion-art/5-a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/orion-art/5-a.jpg -------------------------------------------------------------------------------- /test/i/orion-art/5-b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/orion-art/5-b.jpg -------------------------------------------------------------------------------- /test/i/orion-art/5-c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/orion-art/5-c.jpg -------------------------------------------------------------------------------- /test/i/getwear/IMG_5017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/getwear/IMG_5017.jpg -------------------------------------------------------------------------------- /test/i/getwear/IMG_5020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/getwear/IMG_5020.jpg -------------------------------------------------------------------------------- /test/i/getwear/IMG_5021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/getwear/IMG_5021.jpg -------------------------------------------------------------------------------- /test/i/macro2/10-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/10-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/11-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/11-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/12-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/12-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/13-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/13-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/14-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/14-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/15-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/15-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/16-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/16-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/17-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/17-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/18-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/18-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/19-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/19-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/20-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/20-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/21-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/21-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/22-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/22-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/23-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/23-thumb.jpg -------------------------------------------------------------------------------- /test/i/macro2/24-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/macro2/24-thumb.jpg -------------------------------------------------------------------------------- /test/i/nyc/explanation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/explanation.jpg -------------------------------------------------------------------------------- /test/i/nyc/facing-wind.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/facing-wind.jpg -------------------------------------------------------------------------------- /test/i/nyc/guy-in-park.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/guy-in-park.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/KIOSK.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/KIOSK.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/dudes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/dudes.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/eyes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/eyes.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/10.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/11.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/12.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/13.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/14.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/15.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/16.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/17.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/18.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/19.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/20.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/21.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/22.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/23.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/24.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/25.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/26.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/27.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/28.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/29.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/30.jpg -------------------------------------------------------------------------------- /test/i/dailymotion/xu4jqv.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/dailymotion/xu4jqv.jpg -------------------------------------------------------------------------------- /test/i/dailymotion/xxgmlg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/dailymotion/xxgmlg.jpg -------------------------------------------------------------------------------- /test/i/flowplayer/playful.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/flowplayer/playful.jpg -------------------------------------------------------------------------------- /test/i/mousefish/fish_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/fish_01.jpg -------------------------------------------------------------------------------- /test/i/mousefish/fish_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/fish_02.jpg -------------------------------------------------------------------------------- /test/i/mousefish/fish_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/fish_03.jpg -------------------------------------------------------------------------------- /test/i/mousefish/mouse_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/mouse_01.jpg -------------------------------------------------------------------------------- /test/i/mousefish/mouse_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/mouse_02.jpg -------------------------------------------------------------------------------- /test/i/mousefish/mouse_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/mouse_03.jpg -------------------------------------------------------------------------------- /test/i/mousefish/parrot_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/parrot_01.jpg -------------------------------------------------------------------------------- /test/i/mousefish/parrot_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/parrot_02.jpg -------------------------------------------------------------------------------- /test/i/mousefish/parrot_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/parrot_03.jpg -------------------------------------------------------------------------------- /test/i/mousefish/worm_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/worm_01.jpg -------------------------------------------------------------------------------- /test/i/mousefish/worm_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/worm_02.jpg -------------------------------------------------------------------------------- /test/i/mousefish/worm_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/worm_03.jpg -------------------------------------------------------------------------------- /test/i/nyc/dudeintheground.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/dudeintheground.jpg -------------------------------------------------------------------------------- /test/i/nyc/ladies-riding.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/ladies-riding.jpg -------------------------------------------------------------------------------- /test/i/nyc/severedhead-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/severedhead-lo.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/acapella.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/acapella.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/flipoff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/flipoff.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/freakout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/freakout.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/smoking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/smoking.jpg -------------------------------------------------------------------------------- /test/i/nyc/two-umbrellas.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/two-umbrellas.jpg -------------------------------------------------------------------------------- /test/i/nyc/woman-reading.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/woman-reading.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/1-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/1-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/10-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/10-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/11-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/11-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/12-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/12-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/13-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/13-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/14-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/14-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/15-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/15-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/16-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/16-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/17-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/17-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/18-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/18-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/19-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/19-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/2-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/2-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/20-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/20-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/21-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/21-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/22-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/22-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/23-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/23-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/24-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/24-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/25-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/25-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/26-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/26-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/27-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/27-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/28-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/28-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/29-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/29-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/3-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/3-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/30-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/30-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/4-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/4-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/5-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/5-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/6-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/6-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/7-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/7-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/8-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/8-lo.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/9-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/9-lo.jpg -------------------------------------------------------------------------------- /test/i/flowplayer/functional.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/flowplayer/functional.jpg -------------------------------------------------------------------------------- /test/i/flowplayer/minimalist.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/flowplayer/minimalist.jpg -------------------------------------------------------------------------------- /test/i/mousefish/octopus_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/octopus_01.jpg -------------------------------------------------------------------------------- /test/i/mousefish/octopus_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/octopus_02.jpg -------------------------------------------------------------------------------- /test/i/mousefish/octopus_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/mousefish/octopus_03.jpg -------------------------------------------------------------------------------- /test/i/nyc/homeless-sleeping.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/homeless-sleeping.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/crazyjohn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/crazyjohn.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/guy-in-car.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/guy-in-car.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/italianguy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/italianguy.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/lift-dude.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/lift-dude.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/streetlook.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/streetlook.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/1-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/1-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/10-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/10-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/11-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/11-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/12-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/12-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/13-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/13-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/14-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/14-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/15-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/15-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/16-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/16-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/17-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/17-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/18-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/18-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/19-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/19-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/2-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/2-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/20-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/20-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/21-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/21-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/22-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/22-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/23-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/23-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/24-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/24-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/25-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/25-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/26-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/26-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/27-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/27-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/28-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/28-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/29-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/29-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/3-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/3-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/30-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/30-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/4-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/4-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/5-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/5-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/6-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/6-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/7-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/7-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/8-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/8-thumb.jpg -------------------------------------------------------------------------------- /test/i/okonechnikov/9-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/okonechnikov/9-thumb.jpg -------------------------------------------------------------------------------- /src/js/auto-initialization.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | $('.' + _fotoramaClass + ':not([data-auto="false"])').fotorama(); 3 | }); -------------------------------------------------------------------------------- /test/i/nyc/father-son-looking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/father-son-looking.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/explanation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/explanation.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/facing-wind.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/facing-wind.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/guy-in-park.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/guy-in-park.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/ladies-riding.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/ladies-riding.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/two-umbrellas.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/two-umbrellas.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/woman-reading.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/woman-reading.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/dudeintheground.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/dudeintheground.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/severedhead-lo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/severedhead-lo.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/father-son-looking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/father-son-looking.jpg -------------------------------------------------------------------------------- /test/i/nyc/thumbs/homeless-sleeping.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/test/i/nyc/thumbs/homeless-sleeping.jpg -------------------------------------------------------------------------------- /src/i/sprite.sketch/QuickLook/Preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/src/i/sprite.sketch/QuickLook/Preview.png -------------------------------------------------------------------------------- /src/i/sprite.sketch/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artpolikarpov/fotorama/HEAD/src/i/sprite.sketch/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /test/specs/_helpers.js: -------------------------------------------------------------------------------- 1 | function waitsFor (test, fn) { 2 | if (test()) { 3 | fn(); 4 | } else { 5 | setTimeout(function () { 6 | waitsFor(test, fn); 7 | }, 10); 8 | } 9 | } -------------------------------------------------------------------------------- /test/experiments/right.js: -------------------------------------------------------------------------------- 1 | function extendEvent (e) { 2 | var touch = e.touches; 3 | e._x = getNumber(e.pageX, touch && touch[0].pageX); 4 | e._y = getNumber(e.clientY, touch && touch[0].clientY); 5 | } -------------------------------------------------------------------------------- /test/master/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/master

6 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/js/skip.js: -------------------------------------------------------------------------------- 1 | var JQUERY_VERSION = $ && $.fn.jquery.split('.'); 2 | 3 | if (!JQUERY_VERSION 4 | || JQUERY_VERSION[0] < 1 5 | || (JQUERY_VERSION[0] == 1 && JQUERY_VERSION[1] < 8)) { 6 | throw 'Fotorama requires jQuery 1.8 or later and will not run without it.'; 7 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # osx noise 2 | .DS_Store 3 | profile 4 | 5 | # webstorm noise 6 | .idea 7 | 8 | # sass noise 9 | .sass-cache 10 | 11 | node_modules 12 | *.zip 13 | out 14 | secret.json 15 | src/templates/compiled.js 16 | .grunt 17 | _SpecRunner.html 18 | history.json 19 | .* 20 | -------------------------------------------------------------------------------- /src/templates/style.jst: -------------------------------------------------------------------------------- 1 | .fotorama<%= v.s %> .fotorama__nav--thumbs .fotorama__nav__frame{ 2 | padding:<%= v.m %>px; 3 | height:<%= v.h %>px} 4 | .fotorama<%= v.s %> .fotorama__thumb-border{ 5 | height:<%= v.h - v.b * (v.q ? 0 : 2) %>px; 6 | border-width:<%= v.b %>px; 7 | margin-top:<%= v.m %>px} -------------------------------------------------------------------------------- /test/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/assets

6 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/templates/video.jst: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /test/i/me/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/me

6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/i/dailymotion/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/dailymotion

6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/i/orion-art/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/orion-art

6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/i/getwear/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/getwear

6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/i/flowplayer/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/flowplayer

6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/js/instances.js: -------------------------------------------------------------------------------- 1 | $.Fotorama.instances = []; 2 | 3 | function calculateIndexes () { 4 | $.each($.Fotorama.instances, function (index, instance) { 5 | instance.index = index; 6 | }); 7 | } 8 | 9 | function addInstance (instance) { 10 | $.Fotorama.instances.push(instance); 11 | calculateIndexes(); 12 | } 13 | 14 | function hideInstance (instance) { 15 | $.Fotorama.instances.splice(instance.index, 1); 16 | calculateIndexes(); 17 | } -------------------------------------------------------------------------------- /test/i/fit/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/fit

6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/index.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for DIR in $(find ./test -type d); do 4 | ( 5 | echo -e "\n\n\n\n

Index of ${DIR}

\n\n\n" 8 | ) > "${DIR}/index.html" 9 | done 10 | -------------------------------------------------------------------------------- /test/speed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/speed

6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/flowplayer/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/flowplayer

6 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/utils.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Utils 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/speed/speed-helpers.js: -------------------------------------------------------------------------------- 1 | var S = {}; 2 | 3 | S.times = function (n, iterator, context) { 4 | var accum = Array(Math.max(0, n)); 5 | for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i); 6 | return accum; 7 | }; 8 | 9 | S.test = function (testName, test, n, context) { 10 | console.time(testName); 11 | S.times(n || 100, function () { 12 | S.test.before && S.test.before(); 13 | 14 | test(); 15 | 16 | S.test.after && S.test.after(); 17 | }, context); 18 | console.timeEnd(testName); 19 | } -------------------------------------------------------------------------------- /test/link-to-fotorama-page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Basic example →

10 | 11 |
12 |

I am trying Fotorama and I am experiencing a problem. 13 | Sometimes, thumbnails and images do no load. It happens when I click a link to open a page, hit the browser back button and then click the same link to open the page again. 14 |

15 | — Cassius 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /test/experiments/select.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 15 | 16 |
17 | 18 | 19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/sites/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/sites

6 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin inline-block($va: middle) { 2 | display: -moz-inline-box; 3 | -moz-box-orient: vertical; 4 | display: inline-block; 5 | vertical-align: $va; 6 | *display: inline; 7 | *zoom: 1; 8 | } 9 | 10 | @mixin opacity($val: 1, $important: 0) { 11 | @if $important == 0 { 12 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=#{$val*100})"; 13 | filter: alpha(opacity=$val*100); 14 | opacity: $val; 15 | } @else { 16 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=#{$val*100})" !important; 17 | filter: alpha(opacity=$val*100) !important; 18 | opacity: $val !important; 19 | } 20 | } -------------------------------------------------------------------------------- /test/experiments/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/experiments

6 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/#119/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/#119

6 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/jquery/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/jquery

6 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /test/i/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i

6 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/specs/nav.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('Basic', function () { 12 | var $fotorama, fotorama; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | fotorama = fotorama || $fotorama.data('fotorama'); 17 | }); 18 | 19 | it('data-nav="none"', function () { 20 | expect($('.fotorama__nav', $fotorama).length).toBe(0); 21 | }); 22 | }); -------------------------------------------------------------------------------- /test/no-css.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Basic fotorama:

18 |

<div class="fotorama">
19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | 27 |

Photos by Andrey Okonetchnikov

28 | 29 | -------------------------------------------------------------------------------- /test/specs/no-css-no-throw.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('No CSS, but no throw', function () { 12 | var $fotorama, fotorama; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | }); 17 | 18 | it('initialized after .fotorama()', function () { 19 | $fotorama.fotorama(); 20 | }); 21 | 22 | it('no css here', function () { 23 | expect($('.fotorama__wrap', $fotorama).css('position')).toBe('static'); 24 | }); 25 | }); -------------------------------------------------------------------------------- /test/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Basic fotorama:

18 |

<div class="fotorama">
19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |

Photos by Andrey Okonetchnikov

31 | 32 | -------------------------------------------------------------------------------- /fotorama.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fotorama", 3 | "version": "4.6.4", 4 | "title": "Fotorama", 5 | "description": "A simple, stunning, powerful jQuery gallery.", 6 | "filename": "fotorama.js", 7 | "keywords": [ 8 | "gallery", 9 | "ui", 10 | "responsive", 11 | "slider", 12 | "carousel", 13 | "slideshow", 14 | "photo", 15 | "image", 16 | "content", 17 | "video" 18 | ], 19 | "author": { 20 | "name": "Artem Polikarpov", 21 | "url": "https://github.com/artpolikarpov/" 22 | }, 23 | "licenses": [ 24 | { 25 | "type": "MIT", 26 | "url": "http://fotorama.io/license/" 27 | } 28 | ], 29 | "bugs": "https://github.com/artpolikarpov/fotorama/issues", 30 | "homepage": "http://fotorama.io/", 31 | "docs": "http://fotorama.io/set-up/", 32 | "download": "https://github.com/artpolikarpov/fotorama/releases/download/4.6.4/fotorama-4.6.4.zip", 33 | "dependencies": { 34 | "jquery": ">=1.8" 35 | } 36 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fotorama", 3 | "version": "4.6.4", 4 | "repository": { 5 | "type": "git", 6 | "url": "https://github.com/artpolikarpov/fotorama.git" 7 | }, 8 | "devDependencies": { 9 | "grunt": "~0.4.5", 10 | "grunt-contrib-cssmin": "~0.10.0", 11 | "grunt-contrib-uglify": "~0.5.0", 12 | "grunt-contrib-watch": "~0.6.1", 13 | "grunt-contrib-concat": "~0.4.0", 14 | "grunt-contrib-jst": "~0.6.0", 15 | "grunt-contrib-compress": "~0.9.1", 16 | "grunt-contrib-connect": "~0.8.0", 17 | "grunt-shell": "~0.7.0", 18 | "grunt-contrib-jasmine": "~0.6.5", 19 | "grunt-autoprefixer": "~0.7.6", 20 | "grunt-tweet": "~0.0.5", 21 | "grunt-gh-release": "~0.0.2", 22 | "grunt-replace": "~0.7.8", 23 | "grunt-contrib-copy": "~0.5.0", 24 | "grunt-contrib-sass": "~0.7.3", 25 | "grunt-contrib-clean": "~0.5.0", 26 | "grunt-s3": "^0.2.0-alpha.3" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/flowplayer/1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Flowplayer 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/flowplayer/3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Flowplayer 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/flowplayer/2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Flowplayer 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/example/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |

Photos by Andrey Okonetchnikov

32 | 33 | -------------------------------------------------------------------------------- /src/js/fn-fotorama.js: -------------------------------------------------------------------------------- 1 | $.fn.fotorama = function (opts) { 2 | return this.each(function () { 3 | var that = this, 4 | $fotorama = $(this), 5 | fotoramaData = $fotorama.data(), 6 | fotorama = fotoramaData.fotorama; 7 | 8 | if (!fotorama) { 9 | waitFor(function () { 10 | return !isHidden(that); 11 | }, function () { 12 | fotoramaData.urtext = $fotorama.html(); 13 | new $.Fotorama($fotorama, 14 | /* Priority for options: 15 | * 1.
16 | * 2. $('div').fotorama({loop: false}) 17 | * 3. Defaults */ 18 | $.extend( 19 | {}, 20 | OPTIONS, 21 | window.fotoramaDefaults, 22 | opts, 23 | fotoramaData 24 | ) 25 | ); 26 | }); 27 | } else { 28 | fotorama.setOptions(opts, true); 29 | } 30 | }); 31 | }; -------------------------------------------------------------------------------- /test/basic--no-js.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 |

Basic fotorama:

22 |

<div class="fotorama">
23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 | 34 |

Photos by Andrey Okonetchnikov

35 | 36 | -------------------------------------------------------------------------------- /test/video--force-youtube-hd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Youtube Force HD 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | EDGE by Psaros 27 | EDGE by Psaros (HD) 28 |
29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /test/i/mousefish/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/mousefish

6 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /test/specs/dimensions.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '
' 6 | ); 7 | 8 | describe('Dimensions', function () { 9 | var $fotorama, fotorama; 10 | 11 | beforeEach(function () { 12 | $fotorama = $fotorama || $('#fotorama'); 13 | fotorama = fotorama || $fotorama.data('fotorama'); 14 | }); 15 | 16 | it('fotorama’s dimensions are the dimensions of the first image (works only if script able to connect to the Internet)', function (done) { 17 | var $body = $('body'), 18 | $stage = $('.fotorama__stage', $fotorama); 19 | 20 | waitsFor(function () { 21 | return $stage.height() > 0 22 | }, function () { 23 | expect($stage.height()).toBeGreaterThan(0); 24 | expect($stage.width()).toEqual($body.width()); 25 | expect($stage.height()).toEqual(Math.round($body.width()/(700/467))); 26 | 27 | done(); 28 | }); 29 | }); 30 | }); -------------------------------------------------------------------------------- /test/html-shwr.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom HTML in fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 31 | 32 | 33 |
34 |
35 | 123 36 |
37 |
38 | 234 39 |
40 |
41 | 345 42 |
43 |
44 | 45 | 46 | -------------------------------------------------------------------------------- /test/specs/jquery-1.6.4.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('jQuery 1.6.4', function () { 12 | var $fotorama, fotorama; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | fotorama = fotorama || $fotorama.data('fotorama'); 17 | }); 18 | 19 | it('jQuery version is actually 1.6.4', function () { 20 | expect($fotorama.jquery).toBe('1.6.4'); 21 | }); 22 | 23 | it('...and it is to old, fotorama.js throws an exception', function (done) { 24 | $.ajax('out/fotorama.js', { 25 | success: function (script) { 26 | var tryToRunFotorama = function () { 27 | eval(script); 28 | }; 29 | 30 | expect(tryToRunFotorama).toThrow(); 31 | 32 | done(); 33 | } 34 | }); 35 | }); 36 | }); -------------------------------------------------------------------------------- /test/auto-size.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 |
33 | 34 | 35 |
36 | 37 | 38 |

Photos by Andrey Okonetchnikov

39 | 40 | -------------------------------------------------------------------------------- /test/specs/video.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('Video', function () { 12 | var $fotorama, fotorama, data, $thumb; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | fotorama = fotorama || $fotorama.data('fotorama'); 17 | data = data || fotorama.data; 18 | $thumb = $thumb || $('.fotorama__nav__frame--thumb'); 19 | }); 20 | 21 | 22 | it('previews are fetched (works only if script able to connect to the Internet)', function (done) { 23 | $thumb.each(function () { 24 | var $this = $(this); 25 | waitsFor(function () { 26 | return $('.fotorama__img', $this)[0]; 27 | }, done); 28 | }); 29 | }); 30 | 31 | 32 | // more coming... 33 | }); -------------------------------------------------------------------------------- /MIT-LICENSE: -------------------------------------------------------------------------------- 1 | © 2011—2014, Artem Polikarpov 2 | http://fotorama.io/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the “Software”), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | The software is provided “as is”, without warranty of any kind, express or 15 | implied, including but not limited to the warranties of merchantability, 16 | fitness for a particular purpose and noninfringement. In no event shall the 17 | authors or copyright holders be liable for any claim, damages or other 18 | liability, whether in an action of contract, tort or otherwise, arising from, 19 | out of or in connection with the software or the use or other dealings in 20 | the software. -------------------------------------------------------------------------------- /test/base--312.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 |
33 | 34 | 35 | 36 |
37 | 38 | 39 |

Photos by Andrey Okonetchnikov

40 | 41 | -------------------------------------------------------------------------------- /test/initialization.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 25 | 26 | 27 | 28 | 29 |

Basic fotorama:

30 |

<div class="fotorama">
31 | 32 | 33 | 36 | 37 | 38 |

Photos by Andrey Okonetchnikov

39 | 40 | -------------------------------------------------------------------------------- /test/load-data.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 |
35 | 36 | 37 |
38 | 39 | 40 |

Photos by Andrey Okonetchnikov

41 | 42 | -------------------------------------------------------------------------------- /test/#119/app.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | 4 | angular 5 | 6 | 7 | .module('app', []) 8 | 9 | 10 | .controller('AppController', function ($scope) { 11 | 12 | var model = $scope.model = { 13 | items: [ 14 | [ 15 | { img: '1-lo.jpg' }, 16 | { img: '2-lo.jpg' }, 17 | ], 18 | [ 19 | { img: '3-lo.jpg' }, 20 | { img: '4-lo.jpg' }, 21 | ] 22 | ], 23 | index: 0 24 | }; 25 | 26 | var controller = $scope.Controller = { 27 | change: function () { 28 | model.index = model.index ? 0 : 1; 29 | console.log('model', model); 30 | } 31 | }; 32 | 33 | }) 34 | 35 | 36 | .directive('ngFotorama', function () { 37 | return { 38 | link: function (scope, element, attributes) { 39 | element.fotorama(); 40 | 41 | scope.$watch(attributes.data, function (data) { 42 | var fotorama = element.data('fotorama'); 43 | fotorama.load(data); 44 | console.log('fotorama.data', fotorama.data); 45 | }); 46 | 47 | } 48 | }; 49 | }); 50 | -------------------------------------------------------------------------------- /test/speed/hide-addClass-detach.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /test/loop--1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Loop 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Loop:

25 |

<div class="fotorama"
26 |      data-loop="true">
27 | 28 | 29 | 30 | 31 | 32 |
38 | 39 |
40 | 41 | 42 |

Photos by Andrey Okonetchnikov

43 | 44 | -------------------------------------------------------------------------------- /test/specs/initialization.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('Initialization', function () { 12 | var $fotorama, fotorama; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | }); 17 | 18 | it('not initialized because of data-auto="false"', function () { 19 | expect($fotorama.data('fotorama')).toBeUndefined(); 20 | }); 21 | 22 | it('initialized after .fotorama()', function () { 23 | $fotorama.fotorama({startindex: '9-lo'}); 24 | // will fail without `.fotorama { min-width: 1px; }` because of visibility 25 | expect($fotorama.data('fotorama')).toBeDefined(); 26 | }); 27 | 28 | it('startindex with id given works', function () { 29 | expect($fotorama.data('fotorama').activeIndex).toEqual(2); 30 | }); 31 | }); -------------------------------------------------------------------------------- /test/loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Loop 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Loop:

25 |

<div class="fotorama"
26 |      data-loop="true">
27 | 28 | 29 | 30 | 31 | 32 |
37 | 38 | 39 | 40 |
41 | 42 | 43 |

Photos by Andrey Okonetchnikov

44 | 45 | -------------------------------------------------------------------------------- /test/json.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 |

Photos by Andrey Okonetchnikov

42 | 43 | -------------------------------------------------------------------------------- /test/loop--2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Loop 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Loop:

25 |

<div class="fotorama"
26 |      data-loop="true">
27 | 28 | 29 | 30 | 31 | 32 |
38 | 39 | 40 |
41 | 42 | 43 |

Photos by Andrey Okonetchnikov

44 | 45 | -------------------------------------------------------------------------------- /test/no-jquery.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 |
26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 | 34 |

Photos by Andrey Okonetchnikov

35 | 36 | -------------------------------------------------------------------------------- /test/responsive.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Responsive fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

Responsive fotorama:

19 |

<div class="fotorama"
20 |      data-width="100%"
21 |      data-ratio="800/600">
22 | 23 |

Resize the browser.

24 | 25 | 26 | 27 | 28 | 29 |
32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 |

Photos by Andrey Okonetchnikov

41 | 42 | -------------------------------------------------------------------------------- /test/hidden-before-ready.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 |

Photos by Andrey Okonetchnikov

41 | 42 | -------------------------------------------------------------------------------- /test/base--small.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
33 | 34 | 35 | 36 | 37 | 38 |
39 | 40 | 41 |

Photos by Andrey Okonetchnikov

42 | 43 | -------------------------------------------------------------------------------- /test/video-flowplayer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom Video 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

Custom video:

19 |
<div class="fotorama">
20 |   <a href="video-iframe.html" data-video="true" data-img="preview.jpg">
21 |     <img src="thumb.jpg">
22 |   </a>
23 | </div>
24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | 32 | 33 |
34 | 35 | 36 | -------------------------------------------------------------------------------- /src/js/wheel.js: -------------------------------------------------------------------------------- 1 | function wheel ($el, options) { 2 | var el = $el[0], 3 | lockFLAG, 4 | lastDirection, 5 | lastNow, 6 | tail = { 7 | prevent: {} 8 | }; 9 | 10 | addEvent(el, WHEEL, function (e) { 11 | var yDelta = e.wheelDeltaY || -1 * e.deltaY || 0, 12 | xDelta = e.wheelDeltaX || -1 * e.deltaX || 0, 13 | xWin = Math.abs(xDelta) && !Math.abs(yDelta), 14 | direction = getDirectionSign(xDelta < 0), 15 | sameDirection = lastDirection === direction, 16 | now = $.now(), 17 | tooFast = now - lastNow < TOUCH_TIMEOUT; 18 | 19 | lastDirection = direction; 20 | lastNow = now; 21 | 22 | if (!xWin || !tail.ok || tail.prevent[direction] && !lockFLAG) { 23 | return; 24 | } else { 25 | stopEvent(e, true); 26 | if (lockFLAG && sameDirection && tooFast) { 27 | return; 28 | } 29 | } 30 | 31 | if (options.shift) { 32 | lockFLAG = true; 33 | clearTimeout(tail.t); 34 | tail.t = setTimeout(function () { 35 | lockFLAG = false; 36 | }, SCROLL_LOCK_TIMEOUT); 37 | } 38 | 39 | (options.onEnd || noop)(e, options.shift ? direction : xDelta); 40 | 41 | }); 42 | 43 | return tail; 44 | } -------------------------------------------------------------------------------- /test/#119/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |
29 | 30 |

После двух нажатий кнопки "Change" пропадают навигационные точки.
31 | Еще наблюдается ряд багов, которые не отражены в демке, но связаны со сменой данных (fotorama.data) по средставм метода load()

32 | 33 | 34 | 35 |

Photos by Andrey Okonetchnikov

36 | 37 | -------------------------------------------------------------------------------- /test/transition-duration.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
33 | 34 | 35 | 36 | 37 | 38 |
39 | 40 | 41 |

Photos by Andrey Okonetchnikov

42 | 43 | -------------------------------------------------------------------------------- /test/video-custom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom Video 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

Custom video:

19 |
<div class="fotorama">
20 |   <a href="http://dailymotion.com/embed/video/xxgmlg?autoplay=1"
21 |      data-video="true">
22 |     <img src="preview.jpg">
23 |   </a>
24 | </div>
25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 | -------------------------------------------------------------------------------- /test/start-index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 |
34 | 35 | 36 | 37 | 38 | 39 |
40 | 41 | 42 |

Photos by Andrey Okonetchnikov

43 | 44 | -------------------------------------------------------------------------------- /test/dissolve--html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dissolve 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Dissolve:

25 |

<div class="fotorama"
26 |      data-transition="dissolve">
27 | 28 | 29 |
35 | 36 |
123
37 | 38 |
39 | 40 | 41 |

Photos by Andrey Okonetchnikov

42 | 43 | -------------------------------------------------------------------------------- /test/base--no-click.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 43 |

Photos by Andrey Okonetchnikov

44 | 45 | -------------------------------------------------------------------------------- /test/autoplay--loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Autoplay 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

Autoplay:

19 |

<div class="fotorama"
20 |      data-autoplay="true">
21 | 22 |

The show stops on touch. Change this with data-stop-autoplay-on-touch="false".

23 | 24 | 25 | 26 | 27 | 28 |
35 | 36 | 37 | 38 |
39 | 40 | 41 |

Photos by Andrey Okonetchnikov

42 | 43 | -------------------------------------------------------------------------------- /test/initialization--2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 40 | 41 | 42 | 43 | 44 | 45 |

Photos by Andrey Okonetchnikov

46 | 47 | -------------------------------------------------------------------------------- /test/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 |
36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 44 |

Photos by Andrey Okonetchnikov

45 | 46 | -------------------------------------------------------------------------------- /test/specs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/specs

6 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /test/base--dimensions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 |

Photos by Andrey Okonetchnikov

41 | 42 | -------------------------------------------------------------------------------- /test/base--show.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 |
36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 44 |

Photos by Andrey Okonetchnikov

45 | 46 | -------------------------------------------------------------------------------- /test/tap-event.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 |
37 | 38 | 39 | 40 | 41 | 42 |
43 | 44 | 45 |

Photos by Andrey Okonetchnikov

46 | 47 | -------------------------------------------------------------------------------- /test/auto-false.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 |
37 | 38 | 39 | 40 | 41 | 42 |
43 | 44 | 45 |

Photos by Andrey Okonetchnikov

46 | 47 | -------------------------------------------------------------------------------- /test/fit--501.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 36 | 37 | 38 |
44 | 45 | 46 | 47 |
48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /test/squares.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom HTML in fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Custom HTML:

22 |

<div class="fotorama">
23 |   <div class="any">One</div>
24 | </div>
25 | 26 | 27 | 38 | 39 | 40 |
41 |
1
42 |
2
43 |
3
44 |
45 | 46 | 47 | -------------------------------------------------------------------------------- /test/jquery-1.6.4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 |

Photos by Andrey Okonetchnikov

41 | 42 | -------------------------------------------------------------------------------- /test/iframes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 34 | 35 | 36 |
41 |
42 |
43 |
44 |
45 | 46 | 47 |

Photos by Andrey Okonetchnikov

48 | 49 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fotorama source 2 | 3 | There is nothing for non-coders. Take the latest and ready-to-use Fotorama on its website:
4 | > **http://fotorama.io/set-up** 5 | 6 | ## How to build 7 | First, ensure that you have the latest [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/) installed. 8 | 9 | Test that Grunt’s CLI is installed by running `grunt --version`. If the command isn’t found, run `npm install -g grunt-cli`. For more information about installing Grunt, see the [getting started guide](http://gruntjs.com/getting-started). 10 | 11 | 1. Fork and clone the repo. 12 | 2. Run `npm install` to install all dependencies (including Grunt). 13 | 3. Run `grunt` to grunt this project. 14 | 15 | Hack on by running `grunt watch` and editing files in the `src/` subdirectory. 16 | 17 | The built version of Fotorama will be put in the `out/`. 18 | 19 | ## Submitting pull requests 20 | 1. Create a new branch, please don’t work in your `master` branch directly. 21 | 2. Add stuff. 22 | 3. Push to your fork and submit a pull request to Fotorama’s `develop` branch. 23 | 24 | Regarding code style like indentation and whitespace, follow the conventions you see used in the source already. 25 | 26 |
27 | 28 |    _Supported by_
29 | 30 | -------------------------------------------------------------------------------- /test/__base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
30 | 31 | 32 | 33 | 34 | 35 |
36 | 37 | 48 | 49 | 50 |

Photos by Andrey Okonetchnikov

51 | 52 | -------------------------------------------------------------------------------- /test/dissolve--plain.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dissolve 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Dissolve:

25 |

<div class="fotorama"
26 |      data-transition="dissolve">
27 | 28 | 29 |
35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 43 |

Photos by Andrey Okonetchnikov

44 | 45 | -------------------------------------------------------------------------------- /src/scss/_shadows.scss: -------------------------------------------------------------------------------- 1 | .fotorama__stage, .fotorama__nav { 2 | &:before, &:after { 3 | content: ""; 4 | display: block; 5 | position: absolute; 6 | text-decoration: none; 7 | top: 0; 8 | bottom: 0; 9 | width: 10px; 10 | height: auto; 11 | z-index: 10; 12 | pointer-events: none; 13 | background-repeat: no-repeat; 14 | background-size: 1px 100%, 5px 100%; 15 | @extend %gpu; 16 | } 17 | &:before { 18 | background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.4), transparent); 19 | background-position: 0 0, 0 0; 20 | left: -10px; 21 | } 22 | &.fotorama__shadows--left:before { 23 | left: 0; 24 | } 25 | &:after { 26 | background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.4), transparent); 27 | background-position: 100% 0, 100% 0; 28 | right: -10px; 29 | } 30 | &.fotorama__shadows--right:after { 31 | right: 0; 32 | } 33 | } 34 | 35 | .fotorama--fullscreen .fotorama__stage, 36 | .fotorama--fullscreen .fotorama__nav, 37 | .fotorama__wrap--no-shadows .fotorama__stage, 38 | .fotorama__wrap--no-shadows .fotorama__nav, 39 | .fotorama__wrap--fade .fotorama__stage { 40 | &:before, &:after { 41 | display: none; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /test/html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom HTML in fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Custom HTML:

22 |

<div class="fotorama">
23 |   <div class="any">One</div>
24 | </div>
25 | 26 | 27 | 37 | 38 | 39 |
40 |
One
41 |
Two
42 |
Three
43 |
44 | 45 | 46 | -------------------------------------------------------------------------------- /test/hash--23.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hash 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Hash:

25 |

<div class="fotorama"
26 |      data-hash="true">
27 | 28 | 29 | 30 | 31 | 32 |
37 |

asdfasdfasdf

38 |

asdfasdfasdgffdfg

39 |

dfsdfgn

40 |

Tsdfgdsgsdfg

41 |
42 | 43 | 44 |

Photos by Andrey Okonetchnikov

45 | 46 | -------------------------------------------------------------------------------- /test/full-window.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Full window 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 |

Full window:

21 |

<div class="fotorama"
22 |      data-width="100%"
23 |      data-height="100%">
24 |
25 | 26 | 27 |
32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 |
41 | 42 |

Photos by Andrey Okonetchnikov

43 |
44 | 45 | -------------------------------------------------------------------------------- /test/issue--144.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 |
42 | 43 | 44 | 45 | 46 | 47 |
48 | 49 | 50 |

Photos by Andrey Okonetchnikov

51 | 52 | -------------------------------------------------------------------------------- /test/i/nyc/thumbs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/nyc/thumbs

6 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /test/meteor.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur deserunt dolorem doloremque ea eligendi fuga 9 | fugiat nulla odio officia quis quos reprehenderit, sed, tenetur? Dolor doloribus earum eos quaerat recusandae.

10 | 11 |

Consectetur ducimus ea in labore reiciendis! Assumenda at aut cupiditate delectus deleniti dignissimos distinctio 12 | doloribus enim et minus nam necessitatibus nisi placeat, praesentium, quia quis quisquam sint tempora ullam velit?

13 | 14 | 15 | 16 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem commodi deleniti dolorem, eaque est incidunt 17 | laboriosam maxime, minima nesciunt nihil nostrum numquam obcaecati, officiis perferendis porro quis quod saepe. 18 | Error.

19 | 20 | 21 | 22 | 23 |

A aliquam, ducimus et, expedita facilis ipsa ipsum itaque modi molestias nobis obcaecati optio placeat praesentium 24 | quas quibusdam quisquam sed suscipit totam vero, voluptatem! Enim harum ipsam iure repudiandae ut.

25 | 26 |

Aliquam atque, eligendi eveniet incidunt, inventore minus non placeat quaerat quod, recusandae saepe soluta ullam? 27 | Accusamus amet autem, beatae, doloremque minima molestias nulla, praesentium quidem quisquam quod sapiente sit 28 | soluta.

29 | 30 | 31 | -------------------------------------------------------------------------------- /test/mousefish.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 19 | 20 | 25 | 26 | 27 | 28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 |
36 |
37 | 38 | 39 | 40 | 41 | 42 |
43 |
44 | 45 | 46 | 47 | 48 | 49 |
50 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /test/rtl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Right to left direction 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Right to left direction:

25 |

<div class="fotorama"
26 |      data-direction="rtl">
27 | 28 | 29 |
36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 44 |

Photos by Alexei Lebedev

45 | 46 | -------------------------------------------------------------------------------- /test/i/nyc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Index of ./test/i/nyc

6 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/constrained.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Constrained fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Constrained fotorama:

25 |

<div class="fotorama"
26 |      data-width="100%"
27 |      data-ratio="700/467"
28 |      data-min-width="400"
29 |      data-max-width="1000"
30 |      data-min-height="300"
31 |      data-max-height="100%">
32 | 33 |

Resize the browser.

34 | 35 | 36 |
43 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | 51 |

Photos by Andrey Okonetchnikov

52 | 53 | -------------------------------------------------------------------------------- /test/html-selectable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Selectable text 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 32 | 33 |

Selectable text with .fotorama__select:

34 |
<div class="fotorama">
35 |   <div><span class="fotorama__select">One</span></div>
36 | </div>
37 | 38 | 39 |
40 |
One
41 |
Two
42 |
Three
43 |
44 | 45 | 46 | -------------------------------------------------------------------------------- /src/js/fullscreen.js: -------------------------------------------------------------------------------- 1 | var fullScreenApi = { 2 | ok: false, 3 | is: function () { 4 | return false; 5 | }, 6 | request: function () { 7 | }, 8 | cancel: function () { 9 | }, 10 | event: '', 11 | prefix: '' 12 | }, 13 | browserPrefixes = 'webkit moz o ms khtml'.split(' '); 14 | 15 | // check for native support 16 | if (typeof document.cancelFullScreen != 'undefined') { 17 | fullScreenApi.ok = true; 18 | } else { 19 | // check for fullscreen support by vendor prefix 20 | for (var i = 0, il = browserPrefixes.length; i < il; i++) { 21 | fullScreenApi.prefix = browserPrefixes[i]; 22 | if (typeof document[fullScreenApi.prefix + 'CancelFullScreen' ] != 'undefined') { 23 | fullScreenApi.ok = true; 24 | break; 25 | } 26 | } 27 | } 28 | 29 | // update methods to do something useful 30 | if (fullScreenApi.ok) { 31 | fullScreenApi.event = fullScreenApi.prefix + 'fullscreenchange'; 32 | fullScreenApi.is = function () { 33 | switch (this.prefix) { 34 | case '': 35 | return document.fullScreen; 36 | case 'webkit': 37 | return document.webkitIsFullScreen; 38 | default: 39 | return document[this.prefix + 'FullScreen']; 40 | } 41 | }; 42 | fullScreenApi.request = function (el) { 43 | return (this.prefix === '') ? el.requestFullScreen() : el[this.prefix + 'RequestFullScreen'](); 44 | }; 45 | fullScreenApi.cancel = function (el) { 46 | return (this.prefix === '') ? document.cancelFullScreen() : document[this.prefix + 'CancelFullScreen'](); 47 | }; 48 | } -------------------------------------------------------------------------------- /test/experiments/animation-chain.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 0

9 | 10 |
11 |
12 |
13 | 14 | 15 | 54 | 55 | -------------------------------------------------------------------------------- /test/startindex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Start index option 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 |
33 | 34 | 35 | 36 | 37 | 38 |
39 | 40 |
45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 | 53 |

Photos by Andrey Okonetchnikov

54 | 55 | -------------------------------------------------------------------------------- /test/specs/shuffle.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('Shuffle', function () { 12 | var $fotorama, fotorama, data; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | fotorama = fotorama || $fotorama.data('fotorama'); 17 | data = data || (fotorama.data && fotorama.data.slice(0)); 18 | }); 19 | 20 | it('frames are auto-shuffled', function () { 21 | var shuffled = false; 22 | 23 | $.each(data, function (i, frame) { 24 | shuffled = shuffled || !frame.img.match((i + 1) + '.jpg'); 25 | }); 26 | 27 | expect(shuffled).toBeTruthy(); 28 | }); 29 | 30 | it('frames are shuffled again after .shuffle()', function () { 31 | expect(data).toEqual(fotorama.data); 32 | 33 | fotorama.shuffle(); 34 | 35 | expect(data).not.toEqual(fotorama.data); 36 | }); 37 | 38 | it('frames are not corrupted by .shuffle()', function () { 39 | var oldData = {}, 40 | newData = {}; 41 | 42 | $.each(data, function (i, frame) { 43 | oldData[frame.i] = frame; 44 | }); 45 | 46 | $.each(fotorama.data, function (i, frame) { 47 | newData[frame.i] = frame; 48 | }); 49 | 50 | $.each(new Array(5), function (i) { 51 | expect(oldData[i]).toEqual(newData[i]); 52 | }); 53 | }); 54 | }); -------------------------------------------------------------------------------- /test/fullscreen-native.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Native fullscreen 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |

Native fullscreen:

23 |

<div class="fotorama"
24 |      data-allow-full-screen="native">
25 | 26 |

Click icon at the top-right.

27 | 28 | 29 |
35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 |

One more fotorama:

43 | 44 |
50 | 51 | 52 | 53 | 54 | 55 |
56 | 57 | 58 |

Photos by Andrey Okonetchnikov

59 | 60 | -------------------------------------------------------------------------------- /test/html-with-images.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom HTML 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 39 | 40 |

Images on the background:

41 |
<div class="fotorama">
42 |   <div data-img="1.jpg">One</div>
43 | </div>
44 | 45 | 46 |
47 |
One
48 |
Two
49 |
Three
50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /test/base--iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 36 | 37 | 38 | 39 | 40 | 42 | 43 | 44 |
48 | 49 | 50 | 51 | 52 | 53 |
54 | 55 | 56 |

Photos by Andrey Okonetchnikov

57 | 58 | -------------------------------------------------------------------------------- /test/html-with-thumbs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom HTML 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 39 | 40 |

Images on the background:

41 |
<div class="fotorama">
42 |   <div data-img="1.jpg">One</div>
43 | </div>
44 | 45 | 46 |
47 |
One
48 |
Two
49 |
Three
50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /test/ul.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | List as start layout 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 36 | 37 | 38 | 39 | 40 | 41 | 54 | 55 | 56 |

Photos by Andrey Okonetchnikov

57 | 58 | -------------------------------------------------------------------------------- /test/issue--14.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 17 | 18 | 35 | 36 | 37 | 38 | 39 | 41 | 42 | 43 |
44 | 45 | 46 | 47 | 48 | 49 |
50 | 51 | 52 |

Photos by Andrey Okonetchnikov

53 | 54 | -------------------------------------------------------------------------------- /test/specs/set-options.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('Manipulates the fotorama options at runtime', function () { 12 | var $fotorama, fotorama; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | fotorama = fotorama || $fotorama.data('fotorama'); 17 | }); 18 | 19 | it('arrows', function () { 20 | var $prev = $('.fotorama__arr--prev'), 21 | $next = $('.fotorama__arr--next'); 22 | 23 | function _expect (that) { 24 | expect($prev.is(':visible')).toBe(that); 25 | expect($next.is(':visible')).toBe(that); 26 | } 27 | 28 | _expect(true); 29 | 30 | fotorama.setOptions({arrows: false}); 31 | _expect(false); 32 | 33 | fotorama.setOptions({arrows: true}); 34 | _expect(true); 35 | }); 36 | 37 | it('captions', function () { 38 | var $activeCaption = $('.fotorama__caption', fotorama.activeFrame.$stageFrame); 39 | 40 | expect($activeCaption.text()).toBe('One'); 41 | expect($activeCaption.is(':visible')).toBe(true); 42 | 43 | fotorama.setOptions({captions: false}); 44 | expect($activeCaption.is(':visible')).toBe(false); 45 | 46 | fotorama.setOptions({captions: true}); 47 | expect($activeCaption.is(':visible')).toBe(true); 48 | }); 49 | 50 | // more coming soon... 51 | }); -------------------------------------------------------------------------------- /test/fullscreen-big.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fullscreen with big images 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |

Fullscreen with separate images:

23 |

<div class="fotorama"
24 |      data-allow-full-screen="native">
25 |   <img src="1.jpg" data-full="1_full.jpg">
26 | </div>
27 | 28 |

Click icon at the top-right.

29 | 30 | 31 |
37 | 38 | 39 | 40 | 41 | 42 |
43 | 44 | 45 |

Photos by Andrey Okonetchnikov

46 | 47 | -------------------------------------------------------------------------------- /test/glimpse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 25 | 26 | 27 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 | 53 |

Photos by Andrey Okonetchnikov

54 | 55 | -------------------------------------------------------------------------------- /test/iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | 45 |
49 | 50 | 51 | 52 | 53 | 54 |
55 | 56 | 57 | 58 | 59 |

Photos by Andrey Okonetchnikov

60 | 61 | -------------------------------------------------------------------------------- /test/base--1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | disableifsingleframe 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 30 | 31 |

enableifsingleframe: false (default)

32 | 33 | 34 |
38 | 39 |
40 | 41 |


enableifsingleframe: true

42 | 43 | 44 |
49 | 50 |
51 | 52 |


53 | 54 |
59 | 60 | 61 |
62 | 63 | 64 |

Photos by Andrey Okonetchnikov

65 | 66 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 62 | 63 | 64 | 65 |
66 |
Fo
to
ra
ma
67 |
68 | 69 | 70 | -------------------------------------------------------------------------------- /test/datalabaratory.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Лаборатория данных Тани Мисютиной 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |
25 |
26 | Когортный анализ для Oh My Stats! 27 |
28 |
29 | Пассажиропотоки в московском метро 30 |
31 |
32 | Анализ скачиваний для Зептолаба 33 |
34 |
35 | Статистика по странам для Зептолаба 36 |
37 |
38 | Приложение «Веб-наблюдатель» 39 |
40 |
41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /test/issue--26.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 39 | 40 | 41 | 42 | 43 | 45 | 46 | 47 |
52 | 53 | 54 | 55 | 56 | 57 |
58 | 59 | 60 |

Photos by Andrey Okonetchnikov

61 | 62 | -------------------------------------------------------------------------------- /src/js/bez.js: -------------------------------------------------------------------------------- 1 | /* Bez v1.0.10-g5ae0136 2 | * http://github.com/rdallasgray/bez 3 | * 4 | * A plugin to convert CSS3 cubic-bezier co-ordinates to jQuery-compatible easing functions 5 | * 6 | * With thanks to Nikolay Nemshilov for clarification on the cubic-bezier maths 7 | * See http://st-on-it.blogspot.com/2011/05/calculating-cubic-bezier-function.html 8 | * 9 | * Copyright 2011 Robert Dallas Gray. All rights reserved. 10 | * Provided under the FreeBSD license: https://github.com/rdallasgray/bez/blob/master/LICENSE.txt 11 | */ 12 | function bez (coOrdArray) { 13 | var encodedFuncName = "bez_" + $.makeArray(arguments).join("_").replace(".", "p"); 14 | if (typeof $['easing'][encodedFuncName] !== "function") { 15 | var polyBez = function (p1, p2) { 16 | var A = [null, null], 17 | B = [null, null], 18 | C = [null, null], 19 | bezCoOrd = function (t, ax) { 20 | C[ax] = 3 * p1[ax]; 21 | B[ax] = 3 * (p2[ax] - p1[ax]) - C[ax]; 22 | A[ax] = 1 - C[ax] - B[ax]; 23 | return t * (C[ax] + t * (B[ax] + t * A[ax])); 24 | }, 25 | xDeriv = function (t) { 26 | return C[0] + t * (2 * B[0] + 3 * A[0] * t); 27 | }, 28 | xForT = function (t) { 29 | var x = t, i = 0, z; 30 | while (++i < 14) { 31 | z = bezCoOrd(x, 0) - t; 32 | if (Math.abs(z) < 1e-3) break; 33 | x -= z / xDeriv(x); 34 | } 35 | return x; 36 | }; 37 | return function (t) { 38 | return bezCoOrd(xForT(t), 1); 39 | } 40 | }; 41 | $['easing'][encodedFuncName] = function (x, t, b, c, d) { 42 | return c * polyBez([coOrdArray[0], coOrdArray[1]], [coOrdArray[2], coOrdArray[3]])(t / d) + b; 43 | } 44 | } 45 | return encodedFuncName; 46 | } -------------------------------------------------------------------------------- /test/html-with-links.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom HTML 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 23 | 24 | 25 | 26 | 27 | 28 | 50 | 51 |

Images on the background:

52 |
<div class="fotorama">
53 |   <div data-img="1.jpg">One</div>
54 | </div>
55 | 56 | 57 |
58 |
One
59 |
Two
60 |
Three
61 |
62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /test/speed/data.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /test/crossfade.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Crossfade 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Crossfade:

25 |

<div class="fotorama"
26 |      data-transition="crossfade">
27 | 28 | 29 |
35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 |
47 | 48 | 49 | 50 | 51 | 52 |
53 | 54 | 55 |

Photos by Andrey Okonetchnikov

56 | 57 | -------------------------------------------------------------------------------- /test/autoplay.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Autoplay 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 22 | 23 | 24 | 25 | 26 |

Autoplay:

27 |

<div class="fotorama"
28 |      data-autoplay="true">
29 | 30 |

The show stops on touch. Change this with data-stop-autoplay-on-touch="false".

31 | 32 | 33 | 34 |
47 | 48 | 49 | 50 | 51 | 52 |
53 | 54 | 64 | 65 | 66 |

Photos by Andrey Okonetchnikov

67 | 68 | -------------------------------------------------------------------------------- /test/dissolve.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dissolve 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

Fade:

19 |

<div class="fotorama"
20 |      data-transition="dissolve">
21 | 22 | 23 | 38 | 51 |

52 | Dissolve 53 |   54 | Crossfade 55 |

56 | 57 | 58 |
67 | 68 | 69 | 70 |
71 | 72 | 73 |

Photos by Orion Art

74 | 75 | -------------------------------------------------------------------------------- /test/specs/basic.js: -------------------------------------------------------------------------------- 1 | document.write( 2 | '
' + 3 | '' + 4 | '' + 5 | '' + 6 | '' + 7 | '' + 8 | '
' 9 | ); 10 | 11 | describe('Basic', function () { 12 | var $fotorama, fotorama; 13 | 14 | beforeEach(function () { 15 | $fotorama = $fotorama || $('#fotorama'); 16 | fotorama = fotorama || $fotorama.data('fotorama'); 17 | }); 18 | 19 | it('$.fn.fotorama is here', function () { 20 | expect($.fn.fotorama).toBeDefined(); 21 | }); 22 | it('it’s initialized', function () { 23 | expect(fotorama).toBeDefined(); 24 | expect(fotorama).toEqual(jasmine.any(Object)); 25 | }); 26 | it('all elements are here', function () { 27 | //expect($('.fotorama__load').size()).toEqual(1); 28 | expect($('.fotorama__wrap', $fotorama).size()).toEqual(1); 29 | expect($('.fotorama__stage', $fotorama).size()).toEqual(1); 30 | expect($('.fotorama__stage__shaft', $fotorama).size()).toEqual(1); 31 | expect($('.fotorama__nav', $fotorama).size()).toEqual(1); 32 | expect($('.fotorama__nav__shaft', $fotorama).size()).toEqual(1); 33 | expect($('.fotorama__arr', $fotorama).size()).toEqual(2); 34 | expect($('.fotorama__stage__frame', $fotorama).size()).toEqual(2); 35 | expect($('.fotorama__nav__frame', $fotorama).size()).toEqual(5); 36 | }); 37 | it('dimensions are correct', function (done) { 38 | var $body = $('body'), 39 | $stage = $('.fotorama__stage', $fotorama); 40 | 41 | waitsFor(function () { 42 | return $stage.height() > 0 43 | }, function () { 44 | expect($stage.height()).toBeGreaterThan(0); 45 | expect($stage.width()).toEqual($body.width()); 46 | expect($stage.height()).toEqual(Math.round($body.width()/(700/467))); 47 | 48 | done(); 49 | }); 50 | 51 | 52 | }); 53 | }); -------------------------------------------------------------------------------- /test/transition.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Transition 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

Transition:

19 |

<div class="fotorama"
20 |      data-transition="crossfade">
21 | 22 | 23 | 38 | 53 |

54 | Slide 55 |   56 | Crossfade 57 |

58 | 59 | 60 | 61 | 62 | 63 |
69 | 70 | 71 | 72 | 73 | 74 |
75 | 76 | 77 |

Photos by Andrey Okonetchnikov

78 | 79 | -------------------------------------------------------------------------------- /test/full-window-n-nav.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Full window and hacked dots 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |

Full window:

24 |

<div class="fotorama"
25 |      data-width="100%"
26 |      data-height="100%">
27 |
28 | 29 | 52 | 53 | 54 |
59 | 60 | 61 | 62 | 63 | 64 |
65 | 66 | 67 |
68 | 69 |

Photos by Andrey Okonetchnikov

70 |
71 | 72 | -------------------------------------------------------------------------------- /test/clicktransition.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic fotorama 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 |
42 | 43 | 44 | 45 | 46 | 47 |
48 | 49 |

50 | 51 |
59 | 60 | 61 | 62 | 63 | 64 |
65 | 66 | 67 |

Photos by Andrey Okonetchnikov

68 | 69 | -------------------------------------------------------------------------------- /test/hash.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hash 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 |

Hash:

25 |

<div class="fotorama"
26 |      data-hash="true">
27 | 28 | 29 | 30 | 31 | 32 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 | 61 | 62 |

Photos by Alexei Lebedev

63 | 64 | --------------------------------------------------------------------------------