UNPKG

scroll-padlock

Version:

Locks elements scroll handling scrollbar gaps and iOS Safari with CSS variables

46 lines (32 loc) 1.31 kB
import 'jsdom-global/register.js'; import chai from 'chai'; import getScroll from '../../src/get-scroll-position.js'; const { expect } = chai; describe('get-scroll-position', () => { it('should be able to get an element scroll position', () => { const div = document.createElement('div'); div.scrollTop = 10; div.scrollLeft = 20; expect(getScroll(div)).to.deep.equals({ top: 10, left: 20 }); }); it('should be able to get the page scroll position', () => { // Saves original values const { scrollX, scrollY, pageXOffset, pageYOffset } = window; // Mocks a modern browser let position = { top: 10, left: 20 }; window.scrollY = position.top; window.scrollX = position.left; expect(getScroll(window)).to.deep.equals(position); // Mocks an old browser window.scrollY = window.scrollX = null; position = { top: 11, left: 21 }; window.pageYOffset = position.top; window.pageXOffset = position.left; expect(getScroll(window)).to.deep.equals(position); // Restores original values window.scrollY = scrollY; window.scrollX = scrollX; window.pageYOffset = pageYOffset; window.pageXOffset = pageXOffset; }); });