New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

content-observer

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

content-observer

Watches targets position in viewport using IntersectionObserver - similar to menuspy

latest
Source
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

content-observer

Watch one or more targets position for when they intersect a defined point in the viewport. Uses the Intersection Observer API

Demo

https://tflx.github.io/content-observer

Features

  • Supports vertical and horizontal scrolling
  • Define a point in pixels or a percentage of the screen height/width
  • Re-calculates on browser resize
  • Update hash-location automatically - requires id on the target(s)
  • Disconnect to stop watching targets

Installation

<script src="dist/main.js"></script>

ContentObserver will be available in the global scope.

Or install via NPM/Yarn and require as a module

Install using Yarn:

yarn add content-observer

or NPM:

npm install content-observer --save

Usage

import ContentObserver from 'content-observer';

class App {
  constructor() {
    const co = new ContentObserver(document.querySelectorAll('.observe'), {
      callback: this.handleCallback,
      offset: 200, //or fx. '50%'
      enableLocationHash: true,
      direction: 'vertical'
    });
  }

  handleCallback(target, inView) {
    if (inView) document.querySelector('header').innerHTML = target.id.toUpperCase();
  }
}

export default new App;

The constructor accepts two arguments: the targets (required) to watch and an options object.

To stop watching target(s):

co.disconnect()

Options

NameTypeDefaultRequiredDescription
callbackfunctionnullfalseThe function called when targets intersect/leaves the offset
offsettnumber|string0falseThe offset from top/left of viewport. A number indicates pixels from top/left of viewport. A string should be fx.: '50%'
enableLocationHashbooleanfalsefalseUpdate the location hash when a target with an id intersects the offset
directionstring'vertical'falseThe scroll direction

Methods

NameDescription
disconnectStop watching target(s)

Intersection Observer

Intersection Observer is the API used to determine if an element intersects the offset or not. Browser support is really good - With Safari adding support in 12.1, all major browsers now support Intersection Observers natively. Add the polyfill, so it doesn't break on older versions of iOS and IE11.

Polyfill

You can import the polyfill directly or use a service like polyfill.io to add it when needed.

yarn add intersection-observer

Then import it in your app:

import 'intersection-observer'

Keywords

javascript

FAQs

Package last updated on 22 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts