首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >固定位置CSS

固定位置CSS
EN

Stack Overflow用户
提问于 2010-09-18 07:40:38
回答 3查看 340关注 0票数 2

在我的网站上,我的标题下面有一个带有一些快速链接的div。我使用http://davidwalsh.name/persistent-header-opacity来让这个div始终显示在屏幕上。但是,我希望它显示在顶部(position:fixed;top:0px;,但仅当原始位置已通过。换句话说,我不想让它停留在顶部,直到用户滚动过它。多么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-18 07:58:16

您可以使用JavaScript执行此操作,方法是侦听scroll事件并根据滚动位置响应样式更改:

代码语言:javascript
复制
var nav = document.getElementById('hmenus'); 
var navTop = nav.offsetTop;

window.onscroll = function(e) { 
  var scrollY = window.scrollY ? window.scrollY : document.documentElement.scrollTop;
  if (navTop < scrollY) {
    nav.style.position = 'fixed'; nav.style.top = 0;
  } else { 
    nav.style.position = ""; nav.style.top = "";
  }
}

Firebug #hmenus是一个stackoverflow元素,所以你可以在​中尝试一下。:-)

票数 1
EN

Stack Overflow用户

发布于 2010-09-18 07:58:47

  1. On page load创建一个包含菜单默认顶部偏移量的变量。
  2. 监视scroll事件,如果scrollTop >原始顶部偏移量,则使位置固定,否则为static.
  3. Profit.

示例

http://jsfiddle.net/49gPT/

票数 4
EN

Stack Overflow用户

发布于 2012-09-14 18:11:41

这里有一个新方法的解决方案。

使用position:sticky跟随滚动。

这是这篇文章的解释。

http://updates.html5rocks.com/2012/08/Stick-your-landings-position-sticky-lands-in-WebKit

这是一种老方法,demo

使用sticky position demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3739757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档