From d1e2dcdf28475ed8cb55303f4fe3fad496671c69 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Tue, 29 Jan 2019 22:47:48 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D1=82=D1=80=D0=B8=D1=81=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Reader/TextPage/TextPage.vue | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/client/components/Reader/TextPage/TextPage.vue b/client/components/Reader/TextPage/TextPage.vue index f7e6d66c..c42a8a60 100644 --- a/client/components/Reader/TextPage/TextPage.vue +++ b/client/components/Reader/TextPage/TextPage.vue @@ -88,10 +88,21 @@ class TextPage extends Vue { this.drawStatusBar(); }, 60); - this.debouncedLoadSettings = _.throttle(() => { + this.debouncedLoadSettings = _.debounce(() => { this.loadSettings(); }, 50); + this.debouncedUpdatePage = _.debounce((lines) => { + this.toggleLayout = !this.toggleLayout; + + if (this.toggleLayout) + this.page1 = this.drawPage(lines); + else + this.page2 = this.drawPage(lines); + + this.doPageTransition(); + }, 10); + this.$root.$on('resize', () => {this.$nextTick(this.onResize)}); this.mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent); @@ -354,21 +365,34 @@ class TextPage extends Vue { return; } - this.toggleLayout = !this.toggleLayout; if (this.pageChangeDirectionDown && this.pagePrepared && this.bookPos == this.bookPosPrepared) { + this.toggleLayout = !this.toggleLayout; this.linesDown = this.linesDownNext; this.linesUp = this.linesUpNext; + this.doPageTransition(); } else { const lines = this.getLines(this.bookPos); this.linesDown = lines.linesDown; this.linesUp = lines.linesUp; - if (this.toggleLayout) + + /*if (this.toggleLayout) this.page1 = this.drawPage(lines.linesDown); else - this.page2 = this.drawPage(lines.linesDown); + this.page2 = this.drawPage(lines.linesDown);*/ + + this.debouncedUpdatePage(lines.linesDown); } + this.pagePrepared = false; + this.debouncedPrepareNextPage(); + this.debouncedDrawStatusBar(); + + if (this.book && this.linesDown && this.linesDown.length < this.pageLineCount) + this.doEnd(); + } + + doPageTransition() { if (this.currentTransition) { //this.currentTransition //this.pageChangeTransitionSpeed @@ -380,13 +404,6 @@ class TextPage extends Vue { this.currentTransition = ''; this.pageChangeDirectionDown = false;//true только если PgDown - - this.pagePrepared = false; - this.debouncedPrepareNextPage(); - this.debouncedDrawStatusBar(); - - if (this.book && this.linesDown && this.linesDown.length < this.pageLineCount) - this.doEnd(); } getLines(bookPos) {