代码之家  ›  专栏  ›  技术社区  ›  The Unknown

当我滚动页面时,如何使a<div>上下移动?

  •  51
  • The Unknown  · 技术社区  · 16 年前

    当用户滚动页面时,如何使DIV元素上下移动?(该元素始终可见的位置)

    6 回复  |  直到 11 年前
        1
  •  68
  •   Lucas Dynelight    11 年前

    要将固定属性应用于元素的位置样式。

    position: fixed;
    

    您使用的浏览器是什么?并非所有浏览器都支持固定属性。阅读更多关于谁支持它,谁不支持它以及在这里工作的信息

    http://webreflection.blogspot.com/2009/09/css-position-fixed-solution.html

        2
  •  59
  •   Lucas Dynelight    12 年前

    只是为了更生动可爱的解决方案:

    $(window).scroll(function(){
      $("#div").stop().animate({"marginTop": ($(window).scrollTop()) + "px", "marginLeft":($(window).scrollLeft()) + "px"}, "slow" );
    });
    

    还有一支笔给那些想看的人: http://codepen.io/think123/full/mAxlb 和叉子: http://codepen.io/think123/pen/mAxlb

    更新: 以及一个非动画jquery解决方案:

    $(window).scroll(function(){
      $("#div").css({"margin-top": ($(window).scrollTop()) + "px", "margin-left":($(window).scrollLeft()) + "px"});
    });
    
        3
  •  11
  •   lmno    13 年前

    使用 position:fixed 当你的页面顶部没有标题或标志时,单独一个人就可以了。此解决方案将考虑窗口滚动的距离,并在滚动超过标题时移动DIV。当你再次到达顶部时,它会把它锁回原位。

    if($(window).scrollTop() > Height_of_Header){
        //begin to scroll
        $("#div").css("position","fixed");
        $("#div").css("top",0);
    }
    else{
        //lock it back into place
        $("#div").css("position","relative");
    }
    
        4
  •  5
  •   Alireza Masali    13 年前

    这是jquery代码

    $(document).ready(function () {
         var el = $('#Container');
            var originalelpos = el.offset().top; // take it where it originally is on the page
    
            //run on scroll
            $(window).scroll(function () {
                var el = $('#Container'); // important! (local)
                var elpos = el.offset().top; // take current situation
                var windowpos = $(window).scrollTop();
                var finaldestination = windowpos + originalelpos;
                el.stop().animate({ 'top': finaldestination }, 1000);
            });
        });
    
        5
  •  4
  •   Lucas Dynelight    12 年前

    只要添加 position: fixed; 以你的DIV风格。

    我已经检查过了,它在我的代码中工作正常。

        6
  •  3
  •   Russ Cam    16 年前

    你可能想看看雷米·夏普的 recent article on fixed floating elements at jQuery for Designers ,其中有一个很好的视频和如何在客户端脚本中应用此效果的说明。