# Infinite List

Customization Reference
HTML selector 🔧 [data-arts-component-name="InfiniteList"]
Component source 📄 HTML/js/components/InfiniteList.js
Component source (gulp) 📄 SOURCE/components/infiniteList/InfiniteList.js

# Default Options

defaults: {
  webGL: {
    enabled: false,
    watchScroll: 'auto',
    vertices: 16,
    elasticEffect: 2,
    perspectiveEffect: false,
    directionAwareEffect: false,
    dragScalePlanes: 0.95,
    dragScaleTextures: 1.05
  },
  preventScroll: false,
  autoplay: false,
  drag: {
    label: false,
    arrowsDistance: 45,
    scale: 1.2,
    hideNative: false,
    toggleClass: 'infinite-list_mouse-drag'
  },
  direction: 'vertical',
  loop: true,
  autoCenterFirstItem: true,
  marquee: false,
  matchMedia: false,
  onScrollRotatingButtonSpeed: 2,
  scroll: app.options.virtualScroll,
  scrollHeadings: {
    easing: {
      mouse: 0.1,
      touch: 0.1
    },
    speed: {
      mouse: 0.2,
      touch: 3
    },
    maxDelta: {
      mouse: 80,
      touch: 180
    },
  },
  type: 'wheel,touch,pointer',
  toggleScrollingClass: 'infinite-list_scrolling',
  toggleDraggingClass: 'infinite-list_dragging',
  togglePressedClass: 'infinite-list_pressed',
  snapOnRelease: {
    keyboard: true,
    toggleActiveItemClass: 'active',
    removeActiveClassOnInteraction: false
  },
  snapReveal: true,
  hoverReveal: false,
  hoverSyncLanes: false,
  wheelSpeed: -1,
  speedEffect: {
    skew: -0.1,
    scale: -0.1
  },
  opacityEffect: {
    from: 0,
    to: 1
  },
  speedEffectHeadings: {
    skew: -0.1,
    scale: -0.1
  },
  opacityEffectHeadings: {
    from: 0,
    to: 1
  },
  progressEffect: false,
  currentClass: 'current',
  itemIdAttribute: 'data-post-id',
  arrowPrevSelector: '.js-infinite-list__arrow-prev',
  arrowNextSelector: '.js-infinite-list__arrow-next'
}

# HTML Markup

<div class="js-infinite-list has-curtains"
  data-arts-component-name="InfiniteList"
  data-arts-component-options="{}"
  data-arts-os-animation="true"
  >
  <!-- <canvas> element for webGL effects will be placed here -->
  <div class="canvas-wrapper"></div>
  ...
</div>