检查用户是否在没有jQuery的情况下滚动到Angular2的页面底部的最佳做法是什么?我有权访问我的应用程序组件中的窗口吗?如果不是,我应该检查滚动到页脚组件的底部,我该怎么做?页脚组件上的指令?有没有人完成这个?检查用户是否已滚动到Angular 2的底部
3
A
回答
8
//你可以使用它。
@HostListener("window:scroll", [])
onScroll(): void {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
// you're at the bottom of the page
}
}
2
对我来说,我的客舱底部是不是在页面的底部,所以我不能使用window.innerHeight来看看用户滚动到客舱的底部。 (我的目标是始终滚动到聊天的底部,除非用户试图向上滚动)
我用下面的代替它完美地工作:
let atBottom = element.scrollHeight - element.scrollTop === element.clientHeight
一些背景:
@ViewChild('scrollMe') private myScrollContainer: ElementRef;
disableScrollDown = false
ngAfterViewChecked() {
this.scrollToBottom();
}
private onScroll() {
let element = this.myScrollContainer.nativeElement
let atBottom = element.scrollHeight - element.scrollTop === element.clientHeight
if (this.disableScrollDown && atBottom) {
this.disableScrollDown = false
} else {
this.disableScrollDown = true
}
}
private scrollToBottom(): void {
if (this.disableScrollDown) {
return
}
try {
this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight;
} catch(err) { }
}
和
<div class="messages-box" #scrollMe (scroll)="onScroll()">
<app-message [message]="message" *ngFor="let message of messages.slice().reverse()"></app-message>
</div>
相关问题
- 1. 检查UIWebView是否滚动到底部
- 2. 检查用户是否滚动到顶部或底部
- 3. 如何检查滚动是Angular 4底部的底部?
- 4. 检查用户是否已到达页面底部
- 5. 检查底部是否达到滚动视图的方法
- 6. 问题检测是否已经的UITableView滚动至底部
- 7. 检查网格是否一直滚动到底部
- 8. 检查组件Angular 2中是否已有外部js脚本
- 9. 检测滚动到底部
- 10. 如何使用JQuery检测用户是否滚动到页面的底部?
- 11. 在Firefox中检测滚动到底部2滚动
- 12. 检测一个可滚动的DIV是否已经达到底部
- 13. 滚动查看不滚动到底部
- 14. 如何检查滚动条是否在底部
- 15. 如何使用JQuery检查div是否一直滚动到底部?
- 16. 检测,如果用户已经滚动到一个div的底部
- 17. 如何检测用户已滚动到其iPhone上的网页底部
- 18. 如何检查用户是否滚动到元素的30%,从顶部或底部
- 19. 如果用户滚动到底部
- 20. JQuery Mobile用户滚动到底部
- 21. ASP.NET - 打开PDF并检测到用户滚动到底部
- 22. 当UITableView已滚动到底部时检测到
- 23. Angular 4 - Firebase - 检查用户是否已连接
- 24. 检测滚动到DIV的底部
- 25. jquery查找div是否达到滚动底部
- 26. 检查用户是否正在滚动,如果没有,则将滚动位置设置为底部
- 27. 材料设计精简版,检查滚动是否达到底部
- 28. 如何检查网格或表格的滚动按钮是否已到达表格/网格的底部
- 29. 如何检查滚动条是否已达到div的末尾?
- 30. 检测当用户滚动到底部不工作
只好写为@HostListener( “窗口:滚动”,[]),使其工作。 – pabloruiz55