npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hes-gallery

v1.5.1

Published

Light, dependency free script creating a responsive gallery

Downloads

3,420

Readme

HesGallery

licence version downloads

Light, dependency free script creating a responsive gallery

Instalation

Attach scripts to page You can use a hosted version by hooking this script or import it locally by downloading a package of files, but remember to attach a CSS style sheet and disable the auto-hooking of styles in the options (more in Global options section).

<script src="https://unpkg.com/hes-gallery/dist/hes-gallery.min.js"></script>

When using CDN global object HesGallery will be registred

You can also install package by npm or yarn

$ npm i hes-gallery

$ yarn add hes-gallery

How to use?

For each container with photos that you want to use as a gallery, give the class: (Each container is a singe, independent gallery)

.hes-gallery

You can modify the options of the gallery using function described below

Sample gallery design

<div class="hes-gallery">
  <img src="image1.jpg" alt="image1" data-subtext="Subtext" />
  <img src="image2.jpg" alt="image2" data-subtext="Second subtext" />
  <img src="image3.jpg" alt="image3" data-subtext="Subtext" />
  <img src="image4.jpg" alt="image4" data-subtext="Subtext" />
</div>

Global options

If you want, you can modify the gallery options to make it work better to you by using function HesGallery.setOptions(), you can also change settings passing settings object to HesGallery.init() function. Sample:

HesGallery.setOptions({
  wrapAround: true,
  disableScrolling: true,
})

HesGallery.init({
  wrapAround: true,
  disableScrolling: true,
})

Important If you change the settings after initializing the script, not all options can be applied. To make sure that they will, use HesGallery.init(options) function.

Possible options:

| Parameter | Default | Description | | ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------- | | wrapAround | false | Create loop on gallery, you can go from last photo to first with one click | | showImageCount | true | Show number of current photo (for example "1/5") | | disableScrolling | false | Disable scrolling when gallery is on | | hostedStyles | true | Automatically attaches a style sheet to the source on api.heseya.com (turn off if you want to put hes-gallery on your own server) | | animations | true | Using animations in gallery | | keyboardControl | true | Keyboard control in galleries | | minResolution | 0 | The minimum screen width for which the gallery will work (in px) | | autoInit | true | If true, automaticly run HesGallery.init() when DOM Content is loaded | | linkNested | false | If true, you can use images nested in links |

Options of single gallery

If you like, you can give one set of other options by adding attributes to the .hes-gallery class's container Attributes accept only true or false value, in any other case the gallery will adopt values set by HesGallery.setOptions () or default!

<div class="hes-gallery" data-wrap="true" data-img-count="false">
  <!-- Some <img> here -->
</div>

Available local options:

| Parameter | Global equivalent | Description | | ---------------- | ----------------- | -------------------------------------------------------------------------- | | data-wrap | wrapAround | Create loop on gallery, you can go from last photo to first with one click | | data-img-count | showImageCount | Show number of current photo (for example "1/5") |

Available functions

Some of functions which you can use to manage the gallery

| Function | Description | | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | HesGallery.init() | Reloads the gallery in case when for example content of gallery container has changed and we want to have actual images in gallery | | HesGallery.show(m, n) | Show n photo from m gallery | | HesGallery.next() | Show next photo | | HesGallery.prev() | Show previous photo | | HesGallery.hide() | Hide gallery | | HesGallery.setOptions() | Allows you to modify the gallery options (more above) |

Img tag parameters

| Parameter | Description | | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | data-subtext | He creates a signature under the picture in the gallery | | data-disabled | If set will cause that the image will not be included in the gallery | | data-fullsize | If we want to use thumbnails, we give the thumbnail path to the src tag and a path to the full version of graphics to the data-fullsize tag | | data-src | Some plugins (PR #12) can use this attribute to get the path to the photo. If this param exists, the HesGallery will use it, insead of the src attribute |

Images nested in Links

To support browsers without JavaScript, an option is to statically link the "large" images like so:

<div class="hes-gallery">
  <a href="image1-large.jpg" class="hg-image">
    <img src="image1-small.jpg" alt="image1" data-subtext="Subtext" />
  </a>
  ...
</div>

In that case, users can still open an expanded view but if JS is enabled, they get the HesGallery. To enable this feature, set linkNested to true in the options during initialisation.

Contribution

Feel free to contribute any changes/features for future versions of HesGallery. Please work, and create Pull Pequests on develop branch.

To run build scripts you probably need node in version 11.

How to run?

  1. Install dependecies with npm i command
  2. By npm run dev you can run development server with gulp & browsersync to faster the development of your feature
  3. You can also use a npm run build to only build a script by babel and minimalize code
  4. It would be also greate if you can provide a examples of your feature in readme and in /demo folder
  5. When you finish, push your changes and create a Pull Request

Thanks for your help!

Licence: MIT Copyright 2019 Artur Mędrygał