Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

42 linhas
1.4 KiB

  1. import { eventScope, } from '../utils/';
  2. export function wheelHandler(scrollbar) {
  3. var addEvent = eventScope(scrollbar);
  4. var target = scrollbar.options.delegateTo || scrollbar.containerEl;
  5. var eventName = ('onwheel' in window || document.implementation.hasFeature('Events.wheel', '3.0')) ? 'wheel' : 'mousewheel';
  6. addEvent(target, eventName, function (evt) {
  7. var _a = normalizeDelta(evt), x = _a.x, y = _a.y;
  8. scrollbar.addTransformableMomentum(x, y, evt, function (willScroll) {
  9. if (willScroll) {
  10. evt.preventDefault();
  11. }
  12. });
  13. });
  14. }
  15. // Normalizing wheel delta
  16. var DELTA_SCALE = {
  17. STANDARD: 1,
  18. OTHERS: -3,
  19. };
  20. var DELTA_MODE = [1.0, 28.0, 500.0];
  21. var getDeltaMode = function (mode) { return DELTA_MODE[mode] || DELTA_MODE[0]; };
  22. function normalizeDelta(evt) {
  23. if ('deltaX' in evt) {
  24. var mode = getDeltaMode(evt.deltaMode);
  25. return {
  26. x: evt.deltaX / DELTA_SCALE.STANDARD * mode,
  27. y: evt.deltaY / DELTA_SCALE.STANDARD * mode,
  28. };
  29. }
  30. if ('wheelDeltaX' in evt) {
  31. return {
  32. x: evt.wheelDeltaX / DELTA_SCALE.OTHERS,
  33. y: evt.wheelDeltaY / DELTA_SCALE.OTHERS,
  34. };
  35. }
  36. // ie with touchpad
  37. return {
  38. x: 0,
  39. y: evt.wheelDelta / DELTA_SCALE.OTHERS,
  40. };
  41. }
  42. //# sourceMappingURL=wheel.js.map