在我的应用程序中,我有一条指令可以应用于div,从而可以调整它们的大小。但是,如果完全移动了滚动条,除非滚动条回到顶部,否则我将无法再次调整大小。我知道一种跟踪滚动条位置的方法,但不确定在哪里应用。这是我跟踪滚动位置的地方
public last_known_scroll_position = 0;
@HostListener('window:scroll', ['$event'])
trackScrollBarPos() {
this.last_known_scroll_position = window.pageYOffset;
}
private inDragRegion(evt: MouseEvent) {
this.trackScrollBarPos();
if(this.orientation == "horizontal"){
return this.el.nativeElement.clientWidth - evt.clientX + this.el.nativeElement.offsetLeft < this.resizableGrabWidth;
}else if(this.orientation == "vertical"){
return this.el.nativeElement.clientHeight - evt.clientY +
this.el.nativeElement.offsetTop < this.resizableGrabHeight;
}
}
我应该将方程式中最后一个已知的滚动条位置放在哪里,或者我要解决这个错误?如果没有滚动条,应用程序仍然可以正常工作。
请参阅下面的stackblitz,以获取完整代码https://stackblitz.com/edit/angular-zq5adw
使用pageX / pageY代替MouseEvent的clientX / clientY属性。它们是相对于页面大小而不是视口大小的,因此滚动不会影响它们。编辑的应用程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句