1.0.5 • Published 6 years ago

scroll-freezer v1.0.5

Weekly downloads
5
License
ISC
Repository
github
Last release
6 years ago

ScrollFreezer

Frost scroll event on window. A no-jumping javascript alternative to overflow:hidden.

Why

What's the probelem with overflow:hidden? Well if people have their browsers defaulting to show scrollbars (not overlayed fancy ghost ones like mac/safari) content will jump to right when overflow is applied. It's kind of ugly/janky.

Public Methods

// assuming an instance
const myScrollFreezer = new ScrollFreezer('body');
MethodDescription
myScrollFreezer.freeze()      Locks scroll. Sets isFrozen=true
myScrollFreezer.defrost()      Unlocks scroll. Sets isFrozen=false
myScrollFreezer.toggleFreeze()toggle state between frozeen and defrosted
myScrollFreezer.getState()    returns an state Object. {isFrozen: bool, curScrollLockPos: number}

Usage

// Instanciate
var bodyScrollFreezer = new ScrollFreezer('body');

// starts at false
document.querySelector('.someTrigger').addEventListener('click', function(){
  bodyScrollFreezer.toggleFreeze();
}, false);

/*
 * Manual verfication Example
 */
var isFrozen = bodyScrollFreezer.getState().isFrozen;

if (isFrozen){
  bodyScrollFreezer.defrost()
} else {
  bodyScrollFreezer.freeze()
}

Credits

Technique originally seen at facebook, at least that's what @fhilM said.

Based on philm SO answer 🙌

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago