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

The*_*own 53 html javascript css jquery

当用户滚动页面时,如何让div元素在页面上下移动?(该元素始终可见)

Bob*_*Bob 73

您希望将fixed属性应用于元素的位置样式.

position: fixed;
Run Code Online (Sandbox Code Playgroud)

你在用什么浏览器?并非所有浏览器都支持固定属性.详细了解谁支持它,谁不支持,有些人在这里工作

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

  • 停止支持IE6 (178认同)
  • @Jason,尽管我全心全意地同意这种情绪,但在企业环境中,它可能不是一种选择.有些公司不会/不会因为各种原因而升级(例如,由供应商持有技术上的人质......另一个时间的另一个故事).如果他/她需要支持它,那么他/她需要支持它. (10认同)
  • 我希望我可以下载upvoted评论.解雇供应商并继续前进,这将非常值得.或者说服管理层这样做,如果不是因为供应商不支持新的浏览器. (2认同)

Luc*_*emy 61

只是为了一个更动画和可爱的解决方案:

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

对于那些想看的人来说:http://codepen.io/think123/full/mAxlb和fork:http://codepen.io/think123/pen/mAxlb

更新:和一个非动画的jQuery解决方案:

$(window).scroll(function(){
  $("#div").css({"margin-top": ($(window).scrollTop()) + "px", "margin-left":($(window).scrollLeft()) + "px"});
});
Run Code Online (Sandbox Code Playgroud)


lmn*_*mno 11

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");
}
Run Code Online (Sandbox Code Playgroud)


Ali*_*ali 5

这是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);
        });
    });
Run Code Online (Sandbox Code Playgroud)