Skip to content

Commit

Permalink
fix: 修复从有导航栏跳到无导航栏页面时页面内容跳动的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
guoenxuan committed Nov 1, 2023
1 parent 24b7257 commit ca817f9
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
17 changes: 7 additions & 10 deletions packages/taro-mpharmony/src/api/ui/navigation-bar/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,16 @@ function loadNavigationSytle () {
}
// @ts-ignore
const naviHeight = window.navigationHeight ? window.navigationHeight : 0
// 设置transform属性使得页面内position:fixed的元素相对于app元素定位而不是视口(viewport)
// 设置transform属性使得页面内position:fixed的元素相对于页面定位而不是视口(viewport)
const css = `
.taro_router.taro_navigation {
transform: translateZ(0);
top: ${naviHeight}px;
}
.taro-tabbar__container .taro_navigation .taro_page {
max-height: calc(100vh - ${naviHeight}px);
.taro_navigation {
display: block;
width: 100%;
height: ${naviHeight}px;
}
.taro-tabbar__container .taro_navigation .taro_page.taro_tabbar_page {
max-height: calc(100vh - 50px - ${naviHeight}px);
.taro_navi_page {
transform: translateZ(0);
}`
addStyle(css)
}
Expand Down
19 changes: 12 additions & 7 deletions packages/taro-router/src/router/page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,16 @@ export default class PageHandler {
return style !== 'custom'
}

handleNavigationStyle () {
const appEl = document.querySelector('.taro_router')
this.isDefaultNavigationStyle() ?
appEl?.classList.add('taro_navigation') :
appEl?.classList.remove('taro_navigation')
addBlankNavigationBar (pageEl: HTMLElement | null) {
if (this.isDefaultNavigationStyle() && pageEl && !pageEl.querySelector('.taro_navigation')) {
const firstChild = pageEl.firstElementChild
if (firstChild) {
const navigation = document.createElement('div')
navigation.classList.add('taro_navigation')
firstChild.classList.add('taro_navi_page')
pageEl.insertBefore(navigation, firstChild)
}
}
}

isSamePage (page?: PageInstance | null) {
Expand Down Expand Up @@ -218,6 +223,7 @@ export default class PageHandler {
let pageEl = this.getPageContainer(page)
if (pageEl) {
setDisplay(pageEl)
this.addBlankNavigationBar(pageEl)
this.isTabBar(this.pathname) && pageEl.classList.add('taro_tabbar_page')
this.addAnimation(pageEl, pageNo === 0)
page.onShow?.()
Expand All @@ -226,6 +232,7 @@ export default class PageHandler {
} else {
page.onLoad?.(param, () => {
pageEl = this.getPageContainer(page)
this.addBlankNavigationBar(pageEl)
this.isTabBar(this.pathname) && pageEl?.classList.add('taro_tabbar_page')
this.addAnimation(pageEl, pageNo === 0)
this.onReady(page, true)
Expand All @@ -234,7 +241,6 @@ export default class PageHandler {
this.triggerRouterChange()
})
}
this.handleNavigationStyle()
}

unload (page?: PageInstance | null, delta = 1, top = false) {
Expand Down Expand Up @@ -294,7 +300,6 @@ export default class PageHandler {
this.triggerRouterChange()
})
}
this.handleNavigationStyle()
}

hide (page?: PageInstance | null) {
Expand Down

0 comments on commit ca817f9

Please sign in to comment.