我只想在用户向下滚动时标题试图离开屏幕时才修复标题 div(如横幅)。不使用JS可以吗?以 Facebook 时间线中的示例为例,如果我们向下滚动,一旦页面的标题离开屏幕,横幅就会向上浮动。我的问题是,是否可以只使用 CSS?
如果不够清楚,我想知道是否可以有条件地应用样式“位置:固定”,例如滚动 80px 页面时。
我只想在用户向下滚动时标题试图离开屏幕时才修复标题 div(如横幅)。不使用JS可以吗?以 Facebook 时间线中的示例为例,如果我们向下滚动,一旦页面的标题离开屏幕,横幅就会向上浮动。我的问题是,是否可以只使用 CSS?
如果不够清楚,我想知道是否可以有条件地应用样式“位置:固定”,例如滚动 80px 页面时。
是的。你可以只用 CSS 来做到这一点。这是通过将普通滚动标题放置在固定标题上方来完成的,该标题仅在普通滚动标题在其上方滚动后才会显示。这就是http://techcrunch.com的做法。
更新 [2013 年 10 月 31 日] - Techcrunch 最近更改了他们的用户界面,所以你再也看不到这个了!
检查这个演示:http: //jsfiddle.net/WDnyb/2/
HTML
<div class="header">Header</div>
<div class="outer">
<span class="banner">LOGO</span>
<div class="header">Header</div>
</div>
<div class="content">Content</div>
相关CSS
.header {
width: 100%;
position: fixed;
top: 0;
bottom: auto;
}
.outer {
position: relative;
height: 100px;
}
.outer .header {
position: absolute;
bottom: 0;
z-index: 2;
top: auto;
}
.content {
height: 1500px;
margin-top: 100px;
}
现在可以在没有 javascript 的情况下正确完成此操作position: sticky
。
有关示例,请参阅https://css-tricks.com/position-sticky-2/。
警告:在撰写本文时,IE11、opera mini和 android 的股票浏览器不支持它:https ://caniuse.com/#feat=css-sticky
使用 css 是不可能的。您可以使用 JavaScript 或 jQuery。因为它需要一些条件。
Html----included my content within
<header1>
..............
</header1>
JS
<script>
$(document).ready(function() {
var $header1 = $("header1"),
$clone = $header1.before($header1.clone().addClass("clone"));
$(window).on("scroll", function() {
var fromTop = $("body").scrollTop();
$('body').toggleClass("down", (fromTop > 200));
});
});
</script>
我已经使用上面的脚本来修复标题,它在 googlechrome 中工作正常而不是在 firefox 中......