【问题标题】:Scrolling element correspond scrolling window滚动元素对应滚动窗口
【发布时间】:2017-09-05 10:21:09
【问题描述】:

我想问你“如何创建与滚动窗口相对应的滚动元素。”

如果窗口滚动结束,则该元素可以向下滚动。 如果窗口开始滚动,则该元素可以向上滚动。

我试图做到这一点,但没有解决。

这是我的代码:

$(window).on('scroll',function(event) {
        var lengthScrollWindow = $(this)[0].scrollTop;
        if ($(this).scrollTop() == 0) {
            lengthScrollWindow -= 40;
            $('.main_profile').animate({scrollTop: lengthScrollWindow},700);
        }
        else if ($(this).scrollTop() >= $(this)[0].scrollHeight) {
            lengthScrollWindow += 40;
            $('.main_profile').animate({scrollTop: lengthScrollWindow},700);
        }
    });

这是我的小提琴:

Js Fiddle

【问题讨论】:

    标签: jquery html css scroll


    【解决方案1】:

    我认为问题在于您尝试使用错误的数量为 .main_profile 设置动画。我真的不知道您要做什么,但是如果您想在向上滚动时向上移动 .main_profile 并在向下滚动时向下移动,您可以像这样对其进行动画处理:

            $(document).ready(function() {
          var lastScrollTop = 0;
          $(".main_profile").scroll(function(event) {
    
    
            var top = 40;
            var st = $(this).scrollTop();
            if (st < lastScrollTop) {
           top -= 40;
              $(".main_profile").animate({
                top: top + "px"
              }, 1);
    
    
            } else if (st > lastScrollTop) {
          top += 40;
              $(".main_profile").animate({
                top: top + "px"
              }, 1);
    
    
            }
            lastScrollTop = st;
          });
    
        });
    

    【讨论】:

    • 你不明白我的问题是什么。我也像这样对您的代码进行了测试,但不起作用: var lastScrollTop = 0; $(window).scroll(function(event) { var top = 40; var st = $(this).scrollTop(); if (st lastScrollTop) { top += 40; $(".main_profile").animate({ top: top + "px" }, 1) ; } lastScrollTop = st; });
    • 您能不能换个方式解释一下?即使是你自己的语言,我也可以使用谷歌翻译之类的。
    • 这是我自己要翻译的语言: Bagaimana cara membuat scrolling elemen sesuai window yang di scroll ? Jadi ketika 滚动窗口(jendela 浏览器)ke atas maka elemen itu di gulir/scroll ke atas,ketika 窗口(jendela 浏览器)di scroll ke bawah maka elemen tadi juga di scroll ke bawah。
    • 我明白了。我认为你想要的是一个固定的元素。在css中你可以定义position: fixed然后设置left: 0;top: 0然后它应该随着窗口滚动。如果您希望元素在文档高度的每 1% 处滚动 1% 的窗口高度,那么您处于与我相同的位置,您可以看到我的问题以及我如何部分完成它here
    • 您甚至可以使用top: 属性,如var dHeight = $(document).height() / 100; 然后$('.main_profile').css({top: (x += dHeight) + "%"});,在每个滚动条上使用+= 与顶部的距离。我现在无法测试它,但如果你还没有弄清楚,我稍后会测试它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多