diff --git a/src/components/WatchVideo.vue b/src/components/WatchVideo.vue index 58639680..6c2db75b 100644 --- a/src/components/WatchVideo.vue +++ b/src/components/WatchVideo.vue @@ -14,7 +14,7 @@
-
+
-
- +
+
+ +
@@ -241,14 +243,17 @@ export default { document.title = this.video.title + " - Piped"; this.$refs.videoPlayer.loadVideo(); } - window.addEventListener("scroll", this.handleScroll); + var mainElem = document.getElementsByTagName("main")[0]; + mainElem.addEventListener("scroll", this.handleScroll); }, deactivated() { this.active = false; - window.removeEventListener("scroll", this.handleScroll); + var mainElem = document.getElementsByTagName("main")[0]; + mainElem.removeEventListener("scroll", this.handleScroll); }, unmounted() { - window.removeEventListener("scroll", this.handleScroll); + var mainElem = document.getElementsByTagName("main")[0]; + mainElem.removeEventListener("scroll", this.handleScroll); }, methods: { fetchVideo() { @@ -340,7 +345,13 @@ export default { }, handleScroll() { if (this.loading || !this.comments || !this.comments.nextpage) return; - if (window.innerHeight + window.scrollY >= this.$refs.comments.offsetHeight - window.innerHeight) { + var mainElem = document.getElementsByTagName("main")[0]; + var videosCommentsContainer = document.getElementById("videos-comments-container"); + var videoAndInfo = document.getElementById("video-and-info"); + if ( + videoAndInfo.offsetHeight + mainElem.scrollTop >= + videosCommentsContainer.offsetHeight + videoAndInfo.offsetHeight + ) { this.loading = true; this.fetchJson(this.apiUrl() + "/nextpage/comments/" + this.getVideoId(), { nextpage: this.comments.nextpage,