【发布时间】:2018-08-20 13:01:58
【问题描述】:
我正在尝试在 Angular 5 中为我的表格实现一个粘性标题。
这些是我引用的链接。 https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_navbar_sticky
我需要类似的东西,但我的用法是将可滚动内容放在可滚动的 div 中。因此我的滚动值保持不变,它们不会改变。我可以触发 onscroll 事件
`<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="body">
<div class="header">
<h2>Scroll Down</h2>
<p>Scroll down to see the sticky effect.</p>
</div>
<div id="navbar">
<a class="active" href="javascript:void(0)">Home</a>
<a href="javascript:void(0)">News</a>
<a href="javascript:void(0)">Contact</a>
</div>
<div class="content">
<h3>Sticky Navigation Example</h3>
<p>The navbar will stick to the top when you reach its scroll position.
</p>
<p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum
definitiones no quo, maluisset concludaturque et eum, altera fabulas ut
quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. Affert
laboramus repudiandae nec et. Inciderint efficiantur his ad. Eum no
molestiae voluptatibus.</p>
<p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum
definitiones no quo, maluisset concludaturque et eum, altera fabulas ut
quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. Affert
laboramus repudiandae nec et. Inciderint efficiantur his ad. Eum no
molestiae voluptatibus.</p>
</div>
</div>
<script>
window.onscroll = function() {myFunction()};
var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;
var navbar1 = document.getElementsByClassName("body");
var sticky1 = navbar1[0].offsetTop;
function myFunction() {
console.log("01 --> " + sticky1);
console.log("02 --> " + window.pageYOffset);
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}
</script>
</body>
</html>`
这就是我的代码。
我使用此链接将 JS 代码转换为 NG2
【问题讨论】:
-
你能提供一个 plunker\stacblitz 或一个代码沙盒吗?