UNPKG

smooth-scrollbar

Version:

Customize scrollbar in modern browsers with smooth scrolling experience.

42 lines 1.38 kB
import { eventScope, } from '../utils/'; export function wheelHandler(scrollbar) { var addEvent = eventScope(scrollbar); var target = scrollbar.options.delegateTo || scrollbar.containerEl; var eventName = ('onwheel' in window || document.implementation.hasFeature('Events.wheel', '3.0')) ? 'wheel' : 'mousewheel'; addEvent(target, eventName, function (evt) { var _a = normalizeDelta(evt), x = _a.x, y = _a.y; scrollbar.addTransformableMomentum(x, y, evt, function (willScroll) { if (willScroll) { evt.preventDefault(); } }); }); } // Normalizing wheel delta var DELTA_SCALE = { STANDARD: 1, OTHERS: -3, }; var DELTA_MODE = [1.0, 28.0, 500.0]; var getDeltaMode = function (mode) { return DELTA_MODE[mode] || DELTA_MODE[0]; }; function normalizeDelta(evt) { if ('deltaX' in evt) { var mode = getDeltaMode(evt.deltaMode); return { x: evt.deltaX / DELTA_SCALE.STANDARD * mode, y: evt.deltaY / DELTA_SCALE.STANDARD * mode, }; } if ('wheelDeltaX' in evt) { return { x: evt.wheelDeltaX / DELTA_SCALE.OTHERS, y: evt.wheelDeltaY / DELTA_SCALE.OTHERS, }; } // ie with touchpad return { x: 0, y: evt.wheelDelta / DELTA_SCALE.OTHERS, }; } //# sourceMappingURL=wheel.js.map