如何使用按钮在angular2中模拟滚动?

如何使用按钮在angular2中模拟滚动?,angular,Angular,如果我有一个div 300x300,除了一个滚动条,如果内容超过了框的高度(这样垂直滚动条就会出现)(overflow:auto),我希望有一个按钮显示在框的底部,上面写着“向下翻页”,还有一个按钮显示在框的顶部,上面写着“向上翻页”,这将“虚拟地滚动”就像用户根据div的高度单击了滚动条一样 我希望这个可以用于div。实现这一点的好方法是什么?这是指令吗?是否需要为每个组件添加重复代码 存在。我想你也可以根据更具体的目的定制它 我用过一次,它只包含一个指令,我想你可以编辑它来添加一个函数,并管

如果我有一个div 300x300,除了一个滚动条,如果内容超过了框的高度(这样垂直滚动条就会出现)(overflow:auto),我希望有一个按钮显示在框的底部,上面写着“向下翻页”,还有一个按钮显示在框的顶部,上面写着“向上翻页”,这将“虚拟地滚动”就像用户根据div的高度单击了滚动条一样

我希望这个可以用于div。实现这一点的好方法是什么?这是指令吗?是否需要为每个组件添加重复代码

存在。我想你也可以根据更具体的目的定制它

我用过一次,它只包含一个指令,我想你可以编辑它来添加一个函数,并管理你想要的按钮操作

您会注意到它使用javascript公共函数来计算滚动高度等等。这里是一个用于计算barHeight的函数示例。您可以在他们的github项目文件夹中找到

 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);
}