正如你提到的滚动修复演示网站上的提示所说:
请记住,该指令仅向元素添加 ui-scrollfix 类。您可以添加相应的 CSS 规则,但如果您愿意,也可以添加其他规则。
因此,此指令的工作方式是,只要达到滚动条件,就会将单个 CSS 类 ui-scrollfix 添加到元素中,而在其他情况下(当您滚动回顶部时)会删除该类。因此,您有责任添加 正确的 CSS 样式。
您可以通过向元素添加另一个类或 CSS id 并为这两种情况定义正确的 CSS 样式来实现这一点 - 正常的一种,以及向下滚动时固定的一种。例如,您可以在代码中包含这样的内容:
<div ui-scrollfix="+100" class="yourclass">test</div>
它可以在这个正常状态应用任何样式:
.yourclass {
/* your CSS code, 100px from the top of the page */
}
当ui-scrollfix 条件触发时(在本例中,我们将其设置为+100,因此当页面滚动在您的元素之后100 像素时),您的<div> 元素将添加另一个类:
<div ui-scrollfix="+100" class="yourclass ui-scrollfix">test</div>
您可以使用它来设置正确的 CSS 样式:
.yourclass.ui-scrollfix {
position:fixed;
top:0;
}
Here is a demo 使用顶部导航栏上的指令,该指令绝对位于页面顶部的100px,并且当您向下滚动时,它会固定在页面顶部。同样,第二个(标题为“第二个导航栏”)位于顶部的下方。我用于顶栏的 CSS 代码是:
.navbar-fixed-top {
position:absolute;
top:100px;
}
.navbar-fixed-top.ui-scrollfix {
position: fixed;
top:0;
}
另外,我认为重要的是要提到ui-scrollfix="+100" 意味着当视口顶部在元素之后滚动100px 时,ui-scrollfix 类将被添加到元素中。如果您希望元素在到达视口顶部时获得ui-scrollfix CSS 类,您可以添加ui-scrollfix="+0"。
希望这会有所帮助。