当我滚动页面时,如何使<div>上下移动?
当用户滚动页面时,如何让div元素在页面上下移动? (该元素始终可见)
您想要将固定属性应用于元素的位置样式。
position: fixed;
你在用什么浏览器? 并非所有浏览器都支持固定属性。 阅读更多关于谁支持它,谁不在这里和一些工作
http://webreflection.blogspot.com/2009/09/css-position-fixed-solution.html
只是为了更多的animation和可爱的解决scheme:
$(window).scroll(function(){ $("#div").stop().animate({"marginTop": ($(window).scrollTop()) + "px", "marginLeft":($(window).scrollLeft()) + "px"}, "slow" ); });
而对于那些想查看的笔: http : //codepen.io/think123/full/mAxlb和fork: http : //codepen.io/think123/pen/mAxlb
更新:和一个非animation的jQuery解决scheme:
$(window).scroll(function(){ $("#div").css({"margin-top": ($(window).scrollTop()) + "px", "margin-left":($(window).scrollLeft()) + "px"}); });
使用position:fixed
当页面顶部没有标题或徽标时,单独position:fixed
就可以了。 这个解决scheme将考虑到窗口滚动的距离,当你滚动你的标题时移动div。 当你再次到达顶部时,它将locking到位。
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"); }
这是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); }); });
只需添加position: fixed;
在你的div风格。
我已经检查,并在我的代码工作正常。
您可能想查看一下Remy Sharp 最近关于jQuery for Designers的固定浮动元素的文章 ,它有一个很好的video和关于如何在客户端脚本中应用这个效果的文章