Giter VIP home page Giter VIP logo

mediumlightbox's Introduction

MediumLightbox

Nice and elegant way to add zooming functionality for images, inspired by medium.com

This plugin reproduce exactly the same code that use Medium to add the smooth transition effect clicking over the images, with some improvement.

Key features

Written in pure javascript for better performance, lightweight and simple. View demo.

Use

Include

<link href="style.css" rel="stylesheet">
<script src="mediumLightbox.js" ></script>

Style.css has some extra style for demo purposes. Pick just what you need.

html

<figure class="half left zoom-effect">
    <div class="aspectRatioPlaceholder" >
        <div class="aspect-ratio-fill" style="padding-bottom: 50%;"></div>
        <img class="img" data-width="900" data-height="450" src="image.jpg">
    </div>
</figure>

To do some calculations some attributes are necessary:

  • data-width: the real width of the image.
  • data-height: the real height of the image.
  • To the div with aspect-ratio-fill class is applied a padding-bottom that is the aspect ratio of the image. The aspect ratio percentage is found with [(height/width)*100] formula.

Initialize plugin

MediumLightbox('figure.zoom-effect');

Option

MediumLightbox('figure.zoom-effect', {
    margin:40
});
  • Margin - default: 20 - Margin in px applied to the image in zoomed view.

Preview | Live demo

alt text

mediumlightbox's People

Contributors

bryant1410 avatar davidecalignano avatar droom avatar emersonthis avatar habi avatar lubosvoska avatar wotta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mediumlightbox's Issues

add gallery

Hi
tanx for your plugin,
any plan to add gallery feature to support multiple images!?

Please develop the optimal version of this valuable and useful tool for Vue JS :)

Hello dear friend, thank you for this very useful and practical tool, I have only one important suggestion and to develop this tool as a plugin and tool for Vue JS, Vue JS users are very many and I suggest that the optimized version Develop and publish this tool for use in Vue JS, it will definitely be very welcome because there is no suitable tool at the moment.

Doesn't work in Safari

using Safari 8.0.4

Clicking on the image just blocks out a white rectangle around the image, which also doesn't enlarge.

screen shot 2015-03-20 at 10 16 43 am
screen shot 2015-03-20 at 10 16 23 am

Wrapper should be optional

Hey there,

Great plugin, exactly what I am looking for. ๐Ÿ˜„

I am slightly disappointed though, because I expected to simply have to write:

MediumLightbox('.article-content img');

in my articles and it would work, but it doesn't.

I happen to write my articles in markdown, so I don't have control on the HTML wrapping logic. Also data-width and data-height are great, but by default, those could value the current width and height of the image.

Finally the content of style.css is unclear: is it code for your example or is it library code? The distinction should be clear. And eventually you might want to consider moving the CSS code to a JS file, so that the plugin becomes much more agnostic, with single file dependency.

Thanks for taking those feedback in consideration

Same resolution - big images

This should load a different resolution image. Right now you have to put the 'zoomed-in' images in the page and they consume bandwidth regardless if the user zooms them or not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.