flackr / scroll-timeline

A polyfill of ScrollTimeline.
Apache License 2.0
891 stars 84 forks source link

Anim over scroll length not view port in FireFox #195

Closed AverTry closed 6 months ago

AverTry commented 6 months ago

Chrome works, from the css, but firefox polyfill is animating over the full scroll length. I've tried several of the demos in both html and SolidJS, CSS in Chrome is really nice, But the PolyFill in FireFox gives this error no matter how I apply any CSS.

Here is the last html demo I tried, maybe the issue is obvious to someone. image

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="https://flackr.github.io/scroll-timeline/dist/scroll-timeline.js"></script>
    <title>Document</title>
    <!-- Global Styles Here -->
    <style>
      html,
      body {
        margin: 0;
        padding: 0;
        background: #fff;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
          "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans",
          "Helvetica Neue", sans-serif;
      }

      * {
        box-sizing: border-box;
      }

      body {
        padding-top: 100vh;
      }
    </style>
    <!-- Polyfills require Inline Styles -->
    <style>
      #sticky-parallax-header {
        color: #fff;
        height: 100vh;
        width: 100%;
        background-image: url("https://source.unsplash.com/wwt99cy9jTk");
        background-size: cover;
        background-position: 50% 50%;
        background-blend-mode: soft-light;

        display: grid;
        place-items: center;
        text-align: center;
        font-size: calc(4vw + 1em);
      }

      .content {
        padding-top: 100vh;
        margin: 0 auto 0;
        width: 80vw;
        max-width: 60em;
      }

      #sticky-parallax-header {
        position: fixed;
        top: 0;

        animation: sticky-parallax-header-move-and-size linear forwards;
        animation-timeline: scroll();
        animation-range: 0vh 90vh;
      }

      @keyframes sticky-parallax-header-move-and-size {
        from {
          background-position: 50% 0;
        }
        to {
          background-position: 50% 100%;
          background-color: #0b1584;
          height: 10vh;
          font-size: 2em;
        }
      }
    </style>
  </head>
  <body>
    <div id="sticky-parallax-header">
      Full-Height Cover Card to Fixed Header
    </div>

    <div id="content">
      <div class="warning">
        <p>
          ⚠️ Your browser does not support Scroll-driven Animations. Please use
          Chrome 115 or newer.
        </p>
      </div>

      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer mattis
        turpis eu neque tincidunt lacinia. Pellentesque habitant morbi tristique
        senectus et netus et malesuada fames ac turpis egestas. Aliquam auctor
        ultrices tortor et volutpat. Donec eu semper orci, eu fermentum orci.
        Vivamus aliquam lobortis egestas. Proin vel mauris vitae sem auctor
        cursus. Aenean sit amet odio at magna pharetra luctus nec eget urna.
        Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
        cubilia curae; Praesent in leo at tellus ultricies laoreet.
      </p>

      <p>
        Duis nec nisi a eros dictum euismod nec non enim. Donec augue neque,
        aliquam id finibus a, volutpat ut ligula. Nam feugiat odio elit, ut
        molestie mi tempus vel. Etiam vitae velit eget massa scelerisque
        hendrerit cursus vel justo. Sed eget euismod lectus. Morbi tincidunt
        diam ac diam tempor molestie. Mauris eget lectus leo. Etiam id porta
        turpis.
      </p>

      <p>
        Aenean ac pellentesque ante. In hac habitasse platea dictumst. Nullam
        efficitur, dolor ac pharetra iaculis, sem elit maximus ex, et malesuada
        est ipsum tempor nisi. Phasellus auctor et turpis ultrices fermentum.
        Mauris ac orci sapien. Quisque auctor, mi eu vestibulum dictum, nisl
        felis pulvinar dui, non dictum justo tellus a urna. Morbi suscipit et
        odio a feugiat. Sed dui nisi, iaculis a lacus posuere, dictum laoreet
        felis. Class aptent taciti sociosqu ad litora torquent per conubia
        nostra, per inceptos himenaeos.
      </p>

      <p>
        Nam pulvinar congue condimentum. Pellentesque fringilla ante sed massa
        tincidunt feugiat. Nulla bibendum est eros, non malesuada dolor vehicula
        in. Morbi eu cursus arcu. Phasellus ultricies ornare lorem, non interdum
        orci condimentum eu. Donec condimentum condimentum ligula ut placerat.
        Vestibulum id neque condimentum, molestie nunc vel, suscipit turpis.
        Quisque orci velit, mattis et nibh non, tempor finibus erat. Nullam
        tristique, tortor non commodo cursus, magna turpis rhoncus leo, quis
        porta quam ante sed orci. Nunc vehicula imperdiet leo in vulputate.
        Quisque quis dolor orci.
      </p>

      <p>
        Curabitur ultrices fringilla libero sit amet porta. Nulla rhoncus
        venenatis euismod. Praesent non interdum sem. Nunc in nibh tincidunt,
        faucibus sem at, finibus turpis. Nullam vel odio blandit, tincidunt urna
        et, luctus lectus. Vivamus porta sem vitae turpis interdum porta eu id
        ligula. Fusce non nisi fringilla, malesuada metus ut, imperdiet ligula.
        Nunc quis lorem nibh. Duis pharetra magna vestibulum metus convallis, id
        mollis ligula vulputate. Sed purus est, consectetur non suscipit sit
        amet, hendrerit at dolor. Maecenas feugiat, quam vel ullamcorper
        feugiat, sapien ipsum viverra justo, id cursus metus nisi quis enim.
      </p>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer mattis
        turpis eu neque tincidunt lacinia. Pellentesque habitant morbi tristique
        senectus et netus et malesuada fames ac turpis egestas. Aliquam auctor
        ultrices tortor et volutpat. Donec eu semper orci, eu fermentum orci.
        Vivamus aliquam lobortis egestas. Proin vel mauris vitae sem auctor
        cursus. Aenean sit amet odio at magna pharetra luctus nec eget urna.
        Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
        cubilia curae; Praesent in leo at tellus ultricies laoreet.
      </p>

      <p>
        Duis nec nisi a eros dictum euismod nec non enim. Donec augue neque,
        aliquam id finibus a, volutpat ut ligula. Nam feugiat odio elit, ut
        molestie mi tempus vel. Etiam vitae velit eget massa scelerisque
        hendrerit cursus vel justo. Sed eget euismod lectus. Morbi tincidunt
        diam ac diam tempor molestie. Mauris eget lectus leo. Etiam id porta
        turpis.
      </p>

      <p>
        Aenean ac pellentesque ante. In hac habitasse platea dictumst. Nullam
        efficitur, dolor ac pharetra iaculis, sem elit maximus ex, et malesuada
        est ipsum tempor nisi. Phasellus auctor et turpis ultrices fermentum.
        Mauris ac orci sapien. Quisque auctor, mi eu vestibulum dictum, nisl
        felis pulvinar dui, non dictum justo tellus a urna. Morbi suscipit et
        odio a feugiat. Sed dui nisi, iaculis a lacus posuere, dictum laoreet
        felis. Class aptent taciti sociosqu ad litora torquent per conubia
        nostra, per inceptos himenaeos.
      </p>

      <p>
        Nam pulvinar congue condimentum. Pellentesque fringilla ante sed massa
        tincidunt feugiat. Nulla bibendum est eros, non malesuada dolor vehicula
        in. Morbi eu cursus arcu. Phasellus ultricies ornare lorem, non interdum
        orci condimentum eu. Donec condimentum condimentum ligula ut placerat.
        Vestibulum id neque condimentum, molestie nunc vel, suscipit turpis.
        Quisque orci velit, mattis et nibh non, tempor finibus erat. Nullam
        tristique, tortor non commodo cursus, magna turpis rhoncus leo, quis
        porta quam ante sed orci. Nunc vehicula imperdiet leo in vulputate.
        Quisque quis dolor orci.
      </p>

      <p>
        Curabitur ultrices fringilla libero sit amet porta. Nulla rhoncus
        venenatis euismod. Praesent non interdum sem. Nunc in nibh tincidunt,
        faucibus sem at, finibus turpis. Nullam vel odio blandit, tincidunt urna
        et, luctus lectus. Vivamus porta sem vitae turpis interdum porta eu id
        ligula. Fusce non nisi fringilla, malesuada metus ut, imperdiet ligula.
        Nunc quis lorem nibh. Duis pharetra magna vestibulum metus convallis, id
        mollis ligula vulputate. Sed purus est, consectetur non suscipit sit
        amet, hendrerit at dolor. Maecenas feugiat, quam vel ullamcorper
        feugiat, sapien ipsum viverra justo, id cursus metus nisi quis enim.
      </p>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer mattis
        turpis eu neque tincidunt lacinia. Pellentesque habitant morbi tristique
        senectus et netus et malesuada fames ac turpis egestas. Aliquam auctor
        ultrices tortor et volutpat. Donec eu semper orci, eu fermentum orci.
        Vivamus aliquam lobortis egestas. Proin vel mauris vitae sem auctor
        cursus. Aenean sit amet odio at magna pharetra luctus nec eget urna.
        Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
        cubilia curae; Praesent in leo at tellus ultricies laoreet.
      </p>

      <p>
        Duis nec nisi a eros dictum euismod nec non enim. Donec augue neque,
        aliquam id finibus a, volutpat ut ligula. Nam feugiat odio elit, ut
        molestie mi tempus vel. Etiam vitae velit eget massa scelerisque
        hendrerit cursus vel justo. Sed eget euismod lectus. Morbi tincidunt
        diam ac diam tempor molestie. Mauris eget lectus leo. Etiam id porta
        turpis.
      </p>

      <p>
        Aenean ac pellentesque ante. In hac habitasse platea dictumst. Nullam
        efficitur, dolor ac pharetra iaculis, sem elit maximus ex, et malesuada
        est ipsum tempor nisi. Phasellus auctor et turpis ultrices fermentum.
        Mauris ac orci sapien. Quisque auctor, mi eu vestibulum dictum, nisl
        felis pulvinar dui, non dictum justo tellus a urna. Morbi suscipit et
        odio a feugiat. Sed dui nisi, iaculis a lacus posuere, dictum laoreet
        felis. Class aptent taciti sociosqu ad litora torquent per conubia
        nostra, per inceptos himenaeos.
      </p>

      <p>
        Nam pulvinar congue condimentum. Pellentesque fringilla ante sed massa
        tincidunt feugiat. Nulla bibendum est eros, non malesuada dolor vehicula
        in. Morbi eu cursus arcu. Phasellus ultricies ornare lorem, non interdum
        orci condimentum eu. Donec condimentum condimentum ligula ut placerat.
        Vestibulum id neque condimentum, molestie nunc vel, suscipit turpis.
        Quisque orci velit, mattis et nibh non, tempor finibus erat. Nullam
        tristique, tortor non commodo cursus, magna turpis rhoncus leo, quis
        porta quam ante sed orci. Nunc vehicula imperdiet leo in vulputate.
        Quisque quis dolor orci.
      </p>

      <p>
        Curabitur ultrices fringilla libero sit amet porta. Nulla rhoncus
        venenatis euismod. Praesent non interdum sem. Nunc in nibh tincidunt,
        faucibus sem at, finibus turpis. Nullam vel odio blandit, tincidunt urna
        et, luctus lectus. Vivamus porta sem vitae turpis interdum porta eu id
        ligula. Fusce non nisi fringilla, malesuada metus ut, imperdiet ligula.
        Nunc quis lorem nibh. Duis pharetra magna vestibulum metus convallis, id
        mollis ligula vulputate. Sed purus est, consectetur non suscipit sit
        amet, hendrerit at dolor. Maecenas feugiat, quam vel ullamcorper
        feugiat, sapien ipsum viverra justo, id cursus metus nisi quis enim.
      </p>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer mattis
        turpis eu neque tincidunt lacinia. Pellentesque habitant morbi tristique
        senectus et netus et malesuada fames ac turpis egestas. Aliquam auctor
        ultrices tortor et volutpat. Donec eu semper orci, eu fermentum orci.
        Vivamus aliquam lobortis egestas. Proin vel mauris vitae sem auctor
        cursus. Aenean sit amet odio at magna pharetra luctus nec eget urna.
        Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
        cubilia curae; Praesent in leo at tellus ultricies laoreet.
      </p>

      <p>
        Duis nec nisi a eros dictum euismod nec non enim. Donec augue neque,
        aliquam id finibus a, volutpat ut ligula. Nam feugiat odio elit, ut
        molestie mi tempus vel. Etiam vitae velit eget massa scelerisque
        hendrerit cursus vel justo. Sed eget euismod lectus. Morbi tincidunt
        diam ac diam tempor molestie. Mauris eget lectus leo. Etiam id porta
        turpis.
      </p>

      <p>
        Aenean ac pellentesque ante. In hac habitasse platea dictumst. Nullam
        efficitur, dolor ac pharetra iaculis, sem elit maximus ex, et malesuada
        est ipsum tempor nisi. Phasellus auctor et turpis ultrices fermentum.
        Mauris ac orci sapien. Quisque auctor, mi eu vestibulum dictum, nisl
        felis pulvinar dui, non dictum justo tellus a urna. Morbi suscipit et
        odio a feugiat. Sed dui nisi, iaculis a lacus posuere, dictum laoreet
        felis. Class aptent taciti sociosqu ad litora torquent per conubia
        nostra, per inceptos himenaeos.
      </p>

      <p>
        Nam pulvinar congue condimentum. Pellentesque fringilla ante sed massa
        tincidunt feugiat. Nulla bibendum est eros, non malesuada dolor vehicula
        in. Morbi eu cursus arcu. Phasellus ultricies ornare lorem, non interdum
        orci condimentum eu. Donec condimentum condimentum ligula ut placerat.
        Vestibulum id neque condimentum, molestie nunc vel, suscipit turpis.
        Quisque orci velit, mattis et nibh non, tempor finibus erat. Nullam
        tristique, tortor non commodo cursus, magna turpis rhoncus leo, quis
        porta quam ante sed orci. Nunc vehicula imperdiet leo in vulputate.
        Quisque quis dolor orci.
      </p>

      <p>
        Curabitur ultrices fringilla libero sit amet porta. Nulla rhoncus
        venenatis euismod. Praesent non interdum sem. Nunc in nibh tincidunt,
        faucibus sem at, finibus turpis. Nullam vel odio blandit, tincidunt urna
        et, luctus lectus. Vivamus porta sem vitae turpis interdum porta eu id
        ligula. Fusce non nisi fringilla, malesuada metus ut, imperdiet ligula.
        Nunc quis lorem nibh. Duis pharetra magna vestibulum metus convallis, id
        mollis ligula vulputate. Sed purus est, consectetur non suscipit sit
        amet, hendrerit at dolor. Maecenas feugiat, quam vel ullamcorper
        feugiat, sapien ipsum viverra justo, id cursus metus nisi quis enim.
      </p>
    </div>
  </body>
</html>
bramus commented 6 months ago

Duplicate of #151 – animation-range for a ScrollTimeline is not supported. That’s why it’s running over the full distance.

There is PR pending to fix this: #153