代码之家  ›  专栏  ›  技术社区  ›  Wikson

我想在滚动时启动JS函数

  •  0
  • Wikson  · 技术社区  · 2 年前

    我有一个单页网站,有一个进度条部分。我有一个动画等功能,我知道如何在页面加载时启动它。但当我滚动到那个部分时,我不知道如何启动它。

    JS代码:

    window.onload = function() {
        move();
    };
    
    var i = 0;
    function move() {
        if (i == 0) {
            i = 1;
            var elem = document.getElementById("myBar");
            var width = 1;
            var id = setInterval(frame, 10);
            function frame() {
                if (width >= 95) {
                    clearInterval(id);
                    i = 0;
                } else {
                    width++;
                    elem.style.width = width + "%";
                }
            }
        }
    }
    
    2 回复  |  直到 2 年前
        1
  •  1
  •   crayonne    2 年前

    如果您想在scroll上触发,可以通过jquery来实现。

    $(element).scroll(() ={
        function ()
    }
    

    但如果你想在滚动上制作动画,我建议你使用一个叫做Gsap的库。查看scrollTrogger文档。

        2
  •  1
  •   Lee Taylor Dejan.S    2 年前

    只需在整个文档上使用滚动事件:

    document.addEventListener('scroll', function(e) {
      move();
    });
    
    var i = 0;
    
    function move() {
      if (i == 0) {
        i = 1;
        var elem = document.getElementById("myBar");
        var width = 1;
        var id = setInterval(frame, 10);
    
        function frame() {
          if (width >= 95) {
            clearInterval(id);
            i = 0;
          } else {
            width++;
            elem.style.width = width + "%";
          }
        }
      }
    }
    <div style="height:1000px;width:100%;">
    
    <div style="height:200px">padding</div>
      <div id="myBar" style="background:green;">my bar</div>
    
    </div>