Git Product home page Git Product logo

hunt's Introduction

hunt

Build Status

Light-weight library to detect when DOM elements become visible and disappear on scroll

Install

Download the library and include it in a script tag or install as an npm package.

npm install huntjs --save

Use

Once you've included the script tag or require the module you need to simply pass an element or a list of them and an object to configure the actions and behaviors.

hunt(document.getElementsByClassName('element'), {
    enter: function() {
        this.classList.add('visible');
    },
    out: function() {
        this.classList.remove('visible');
    }
});

You don't need to pass both enter and out, pass either one of them or both.

You might have also noticed that inside those methods you can reference the element using this to apply any modification to it.

By default hunt will stop "hunting" or watching for the element once the out method has been executed to improve performance, but if you need these methods to be called every time the element appears and disappears from the viewport, pass a persist option as true. Beware you can affect scrolling performance.

hunt(document.getElementsByClassName('element'), {
    enter: function() {
        this.classList.add('visible');
    },
    out: function() {
        this.classList.remove('visible');
    },
    persist: true
});

In case you need actions to be executed under the hood, you can use the offset option.

hunt(document.querySelector('.action--element'), {
    enter: function() {
        this.classList.add('visible');
    },
    persist: false,
    offset: 150
});

Custom configuration over datasets

If you want some special configuration over one or many elements, data attributes can be used.

<div class="action--element"
  data-hunt-persist="true"
  data-hunt-offset="500"></div>

These custom values will override the ones you pass through the hunt call.

Clear the hunting process

At any time you can shut down the hunting process by calling hunt.clear().

hunt's People

Contributors

jeremenichelli avatar lucasbento avatar marklabenski avatar

Watchers

Salesman avatar James Cloos avatar

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.