Skip to content

Commit

Permalink
Merge pull request #189 from agileware-jp/feature-88573-fixed-toggle-…
Browse files Browse the repository at this point in the history
…sidebar-button

Feature 88573 サイドバーの開閉ボタンをスクロール時に見きれないように固定する
  • Loading branch information
morioka-hibiki authored Sep 27, 2024
2 parents 722bf68 + 54d2378 commit 358e3de
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
39 changes: 39 additions & 0 deletions src/js/sidebar.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,44 @@ export function initToggleSidebar() {
} else {
openSidebar()
}

// sidebar開閉ボタンの固定
fixedToggleSidebarButton(toggleTrigger)
}
}

/**
* Sidebarの開閉ボタンをスクロール時に固定する
*/
function fixedToggleSidebarButton(toggleButton) {
const sidebar = document.getElementById('sidebar')
const mediaQuery = window.matchMedia('(max-width: 899px)')


function handleScroll(fixedPosition) {
if(window.scrollY < fixedPosition) {
toggleButton.style.position = 'absolute'
} else {
toggleButton.style.position = 'fixed'
}
}

let scrollHandler

function checkAndExecute() {
const fixedPosition = sidebar.getBoundingClientRect().top + window.scrollY
if (!mediaQuery.matches) {
// PC表示のときはスクロールに応じた処理を追加
scrollHandler = () => handleScroll(fixedPosition)
window.addEventListener('scroll', scrollHandler)
} else {
// スマホ表示のときは処理を削除して初期状態にリセット
if(scrollHandler) {
window.removeEventListener('scroll', scrollHandler)
}
}
}

checkAndExecute()
mediaQuery.addEventListener('change', checkAndExecute)
}
4 changes: 2 additions & 2 deletions src/sass/components/buttons.scss
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,14 @@
.aw_backToTop {
// @extend .BTN_PRIMARY;
background-image: url(images/arrow_upward_onFill.svg);
@apply cursor-pointer inline-block overflow-hidden indent-[100%] whitespace-nowrap w-8 h-8 bg-center align-middle bg-background-dark/80 bg-no-repeat border-none p-0 rounded-md fixed right-4 bottom-4 z-[499] hover:bg-background-dark/70 shadow-md
@apply cursor-pointer inline-block overflow-hidden indent-[100%] whitespace-nowrap w-8 h-8 bg-center align-middle bg-background-dark/80 bg-no-repeat border-none p-0 rounded-lg fixed right-4 bottom-4 z-[499] hover:bg-background-dark/70 shadow-md
}

// Sidebarの開閉ボタン
.aw_toggleSidebar {
@extend .BTN_TERTIARY_ICON_ONLY_OUTLINED;
background-image: url(images/move_right_default.svg);
@apply absolute top-[1.15rem] right-[14.25rem] z-10
@apply absolute top-4 right-[14.25rem] z-10
}

.isSidebarClose .aw_toggleSidebar {
Expand Down

0 comments on commit 358e3de

Please sign in to comment.