如果我有div 300x300,除了滚动条,如果内容超出了框的高度(这样就会出现垂直滚动条)(溢出:自动),我想要一个看起来粘在底部的按钮显示“Page Down”的框和一个贴在框顶部的按钮,显示“Page Up”将“虚拟滚动”,就像用户根据div的高度点击滚动条一样。 / p>
我希望这可以用于div。实现这个的好方法是什么?这是一个指令,是否需要为每个组件添加重复代码?
答案 0 :(得分:0)
存在Custom scroll angular directives。我认为你也可以根据更具体的目的进行定制。
我曾使用ng2-slimscroll一次,它包含1个指令,我认为你可以编辑它来添加一个功能并管理你希望采取行动的按钮。
你会注意到它使用javascript常用函数来计算滚动高度等等。这是一个用于计算barHeight的函数示例。你可以在他们的github项目文件夹中找到。 ng2-slimscroll/src/directives/slimscroll.directive.ts
getBarHeight(): void {
setTimeout(() => {
let barHeight = Math.max((this.el.offsetHeight / this.el.scrollHeight) * this.el.offsetHeight, 30) + 'px';
let display = parseInt(barHeight, 10) === this.el.offsetHeight ? 'none' : 'block';
this.renderer.setElementStyle(this.bar, 'height', barHeight);
this.renderer.setElementStyle(this.bar, 'display', display);
this.renderer.setElementStyle(this.grid, 'display', display);
}, 1);
}