<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js">
  <!--<![endif]-->

  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>Scrollama demo</title>
    <meta name="description" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style>
      * {
        box-sizing: border-box;
      }

      html,
      body {
        margin: 0;
        padding: 0;
      }

      body {
        min-height: 101vh;
      }

      p {
        margin: 0;
      }

      #scroll {
        background-color: #cdcdcd;
        position: relative;
        margin-top: 105vh;
        margin-bottom: 200vh;
      }

      #scroll2 {
        background-color: #cdcdcd;
        position: relative;
        margin-top: 50vh;
        margin-bottom: 200vh;
      }

      .scroll__graphic {
        position: absolute;
        top: 0;
        left: 0;
        bottom: auto;
        background-color: #ccc;
        -moz-transition: background-color 250ms ease-in-out;
        -webkit-transition: background-color 250ms ease-in-out;
        transition: background-color 250ms ease-in-out;
        -webkit-transform: translate3d(0, 0, 0);
        -moz-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
      }

      .scroll__graphic.is-fixed {
        position: fixed;
      }

      .scroll__graphic.is-bottom {
        bottom: 0;
        top: auto;
      }

      .scroll__text {
        padding: 1rem;
        position: relative;
      }

      .step {
        max-width: 30rem;
        margin: 3rem auto;
        border: 2px solid #333;
        background-color: #fff;
      }

      .step.is-active {
        background-color: lightgoldenrodyellow;
      }

      .step p {
        text-align: center;
        padding: 1rem;
      }
    </style>
  </head>

  <body>
    <section id="scroll">
      <div class="scroll__text">
        <div class="step" data-step="#ccc">
          <p>Step 1</p>
        </div>
        <!-- <div class='step' data-step='#aaa'>
				<p>Step 2</p>
			</div> -->
        <!-- <div class='step' data-step='#888'>
				<p>Step 3</p>
			</div>
			<div class='step' data-step='#666'>
				<p>Step 4</p>
			</div> -->
      </div>
    </section>
    <section id="scroll2">
      <div class="scroll__text">
        <div class="step" data-step="#ccc">
          <p>Step 1</p>
        </div>
        <!-- <div class='step' data-step='#aaa'>
				<p>Step 2</p>
			</div> -->
        <!-- <div class='step' data-step='#888'>
				<p>Step 3</p>
			</div>
			<div class='step' data-step='#666'>
				<p>Step 4</p>
			</div> -->
      </div>
    </section>
    <div class="debug"></div>
    <script src="d3.v4.min.js"></script>
    <script src="https://unpkg.com/intersection-observer"></script>
    <script src="scrollama.js"></script>
    <script>
      var container = d3.select("#scroll");
      var text = container.select(".scroll__text");
      var step = text.selectAll(".step");

      var container2 = d3.select("#scroll2");
      var text2 = container2.select(".scroll__text");
      var step2 = text2.selectAll(".step");

      var scroller = scrollama();
      var scroller2 = scrollama();

      function handleResize() {
        // var h = Math.floor(window.innerHeight * 0.75) + 'px'
        step.each(function() {
          var ran = 0.1 + Math.random();
          var h = Math.floor(window.innerHeight * ran) + "px";
          d3.select(this).style("height", h);
        });

        scroller.resize();
      }

      function handleStepEnter(resp) {
        console.log("enter", resp);
        step.classed("is-active", function(d, i) {
          return i === resp.index;
        });
        var val = d3.select(resp.element).attr("data-step");
      }

      function handleStepExit(resp) {
        console.log("exit", resp);
        d3.select(resp.element).classed("is-active", false);
      }

      function handleProgress(resp) {
        console.log("progress", resp);
      }

      function handleResize2() {
        // var h = Math.floor(window.innerHeight * 0.75) + 'px'
        step2.each(function() {
          var ran = 0.1 + Math.random();
          var h = Math.floor(window.innerHeight * ran) + "px";
          d3.select(this).style("height", h);
        });

        scroller2.resize();
      }

      function handleStepEnter2(resp) {
        console.log("enter", resp);
        step2.classed("is-active", function(d, i) {
          return i === resp.index;
        });
        var val = d3.select(resp.element).attr("data-step");
      }

      function handleStepExit2(resp) {
        console.log("exit", resp);
        d3.select(resp.element).classed("is-active", false);
      }

      function handleProgress2(resp) {
        console.log("progress", resp);
      }

      function init() {
        handleResize();
        handleResize2();

        scroller
          .setup({
            step: "#scroll .step",
            offset: 0.33,
            debug: true,
            progress: true
          })
          .onStepEnter(handleStepEnter)
          .onStepExit(handleStepExit)
          .onStepProgress(handleProgress);

        scroller2
          .setup({
            step: "#scroll2 .step",
            offset: 0.67,
            debug: true,
            progress: true
          })
          .onStepEnter(handleStepEnter2)
          .onStepExit(handleStepExit2)
          .onStepProgress(handleProgress2);

        console.log(scroller.getOffset());
        console.log(scroller2.getOffset());
        // window.addEventListener('resize', handleResize)
      }

      init();
    </script>
  </body>
</html>