Sha256: 4ed272efea548d3f8b89428060f915a2c2a1e4b48599cb27f987d1a23fdc45b7

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

const scrolling = require('./scrolling');
const questions = require('./questions');

const scrollForm = () => {

  // TODO  index() = function () {}

  let scroller;
  let currentPosition = 0;

  const speed = 400;

  const init = () => {
    const container = questions.getContainer();
    const firstQuestion = questions.getQuestion(0);

    scroller = scrolling.createScroller(container, 0, 0)

    scrolling.scrollTo(scroller, firstQuestion, speed, () => questions.setActiveQuestion(0));
  };

  const next = () => {
    const nextPosition = currentPosition + 1;
    const newTarget = questions.getQuestion(nextPosition);

    if (newTarget) {
      scrolling.scrollTo(scroller, newTarget, speed, () => questions.setActiveQuestion(nextPosition));
      currentPosition += 1;
    }
  };

  const prev = () => {
    const prevPosition = currentPosition - 1;
    const newTarget = questions.getQuestion(prevPosition);

    if (newTarget) {
      scrolling.scrollTo(scroller, newTarget, speed, () => questions.setActiveQuestion(prevPosition));
      currentPosition -= 1;
    }
  };

  return {
    init,
    next,
    prev,
  };

};

module.exports = scrollForm();

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dta_rapid-0.3.2 assets/js/scroll-form.js