fix 漢堡主項點擊展開
This commit is contained in:
+57
-21
@@ -317,11 +317,6 @@ nav a {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portal-nav .portal-nav__subgroup:hover>.portal-submenu-nested,
|
|
||||||
.portal-nav .portal-nav__subgroup:focus-within>.portal-submenu-nested {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.portal-nav .portal-submenu-nested li {
|
.portal-nav .portal-submenu-nested li {
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
@@ -393,15 +388,20 @@ nav a {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portal-nav .portal-nav__subgroup--nested:hover>.portal-submenu-nested--tier3,
|
|
||||||
.portal-nav .portal-nav__subgroup--nested:focus-within>.portal-submenu-nested--tier3,
|
|
||||||
.portal-nav .portal-submenu-nested--tier3:hover,
|
|
||||||
.portal-nav .portal-submenu-nested--tier3:focus-within {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
|
|
||||||
|
.portal-nav .portal-nav__subgroup:hover>.portal-submenu-nested,
|
||||||
|
.portal-nav .portal-nav__subgroup:focus-within>.portal-submenu-nested {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.portal-nav .portal-nav__subgroup--nested:hover>.portal-submenu-nested--tier3,
|
||||||
|
.portal-nav .portal-nav__subgroup--nested:focus-within>.portal-submenu-nested--tier3,
|
||||||
|
.portal-nav .portal-submenu-nested--tier3:hover,
|
||||||
|
.portal-nav .portal-submenu-nested--tier3:focus-within {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
.portal-nav .portal-nav__subgroup>.portal-submenu-nested {
|
.portal-nav .portal-nav__subgroup>.portal-submenu-nested {
|
||||||
position: absolute !important;
|
position: absolute !important;
|
||||||
left: 100% !important;
|
left: 100% !important;
|
||||||
@@ -477,9 +477,7 @@ nav a {
|
|||||||
clamp(14px, 2vw + 10px, 32px)
|
clamp(14px, 2vw + 10px, 32px)
|
||||||
max(1rem, env(safe-area-inset-bottom, 0px));
|
max(1rem, env(safe-area-inset-bottom, 0px));
|
||||||
z-index: 10000;
|
z-index: 10000;
|
||||||
overflow-x: hidden;
|
overflow: hidden;
|
||||||
overflow-y: auto;
|
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
background-color: var(--black);
|
background-color: var(--black);
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
grid-template-rows: auto auto minmax(0, 1fr);
|
grid-template-rows: auto auto minmax(0, 1fr);
|
||||||
@@ -493,6 +491,14 @@ nav a {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.portal-nav.portal-nav--open .logo,
|
||||||
|
.portal-nav.portal-nav--open .portal-nav__menu-toggle {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
flex-shrink: 0;
|
||||||
|
background-color: var(--black);
|
||||||
|
}
|
||||||
|
|
||||||
.portal-nav .logo {
|
.portal-nav .logo {
|
||||||
grid-area: logo;
|
grid-area: logo;
|
||||||
justify-self: start;
|
justify-self: start;
|
||||||
@@ -602,10 +608,18 @@ nav a {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 2px;
|
gap: 2px;
|
||||||
|
order: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.portal-nav>ul>li.open>a {
|
||||||
|
order: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portal-nav .portal-submenu {
|
.portal-nav .portal-submenu {
|
||||||
position: static;
|
position: static;
|
||||||
|
top: auto;
|
||||||
|
left: auto;
|
||||||
|
right: auto;
|
||||||
width: min(100%, 20rem);
|
width: min(100%, 20rem);
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
margin: 4px auto 0;
|
margin: 4px auto 0;
|
||||||
@@ -707,6 +721,18 @@ nav a {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.portal-nav .portal-submenu,
|
||||||
|
.portal-nav .portal-submenu-nested {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.portal-nav .portal-submenu>li,
|
||||||
|
.portal-nav .portal-submenu-nested>li {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.portal-nav .portal-submenu>li+li>a[data-coming-soon="true"] {
|
.portal-nav .portal-submenu>li+li>a[data-coming-soon="true"] {
|
||||||
@@ -818,11 +844,14 @@ a.btn[data-coming-soon="true"],
|
|||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portal-nav>ul>li:hover>.portal-submenu,
|
@media (min-width: 992px) {
|
||||||
.portal-nav>ul>li:focus-within>.portal-submenu,
|
|
||||||
.portal-nav>ul>li.open>.portal-submenu {
|
.portal-nav>ul>li:hover>.portal-submenu,
|
||||||
|
.portal-nav>ul>li:focus-within>.portal-submenu,
|
||||||
|
.portal-nav>ul>li.open>.portal-submenu {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#particles {
|
#particles {
|
||||||
@@ -1778,9 +1807,12 @@ footer a .mark_b {
|
|||||||
overflow: visible;
|
overflow: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
.map-page .portal-nav>ul>li:hover .portal-submenu,
|
@media (min-width: 992px) {
|
||||||
.map-page .portal-nav>ul>li:focus-within .portal-submenu {
|
|
||||||
|
.map-page .portal-nav>ul>li:hover .portal-submenu,
|
||||||
|
.map-page .portal-nav>ul>li:focus-within .portal-submenu {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.map-page .portal-nav .portal-submenu a {
|
.map-page .portal-nav .portal-submenu a {
|
||||||
@@ -2294,12 +2326,16 @@ header.map-archive-header {
|
|||||||
position: static;
|
position: static;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
display: grid;
|
display: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
background: #fffaf0;
|
background: #fffaf0;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.map-page .portal-nav>ul>li.open .portal-submenu {
|
||||||
|
display: grid;
|
||||||
|
}
|
||||||
|
|
||||||
#itinerary-search {
|
#itinerary-search {
|
||||||
width: calc(100% - 28px);
|
width: calc(100% - 28px);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -345,6 +345,7 @@
|
|||||||
const subgroupHead = event.target.closest(".portal-nav__subgroup-head");
|
const subgroupHead = event.target.closest(".portal-nav__subgroup-head");
|
||||||
if (subgroupHead) {
|
if (subgroupHead) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
const subgroup = subgroupHead.closest(".portal-nav__subgroup");
|
const subgroup = subgroupHead.closest(".portal-nav__subgroup");
|
||||||
if (subgroup) subgroup.classList.toggle("open");
|
if (subgroup) subgroup.classList.toggle("open");
|
||||||
return;
|
return;
|
||||||
@@ -352,6 +353,17 @@
|
|||||||
|
|
||||||
const link = event.target.closest("a[href]");
|
const link = event.target.closest("a[href]");
|
||||||
if (!link || link.classList.contains("logo")) return;
|
if (!link || link.classList.contains("logo")) return;
|
||||||
|
|
||||||
|
const topItem = link.closest(".portal-nav > ul > li");
|
||||||
|
const isTopTrigger =
|
||||||
|
topItem &&
|
||||||
|
link === topItem.querySelector(":scope > a") &&
|
||||||
|
topItem.querySelector(":scope > .portal-submenu");
|
||||||
|
|
||||||
|
if (isTopTrigger) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (link.getAttribute("data-coming-soon") === "true") return;
|
if (link.getAttribute("data-coming-soon") === "true") return;
|
||||||
const href = link.getAttribute("href");
|
const href = link.getAttribute("href");
|
||||||
if (href && href !== "#") setPortalNavMenuOpen(nav, false);
|
if (href && href !== "#") setPortalNavMenuOpen(nav, false);
|
||||||
@@ -437,7 +449,11 @@
|
|||||||
|
|
||||||
if (!isPortalNavDesktop()) {
|
if (!isPortalNavDesktop()) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
if (!isSoon && !item.classList.contains("coming-soon")) {
|
if (!isSoon && !item.classList.contains("coming-soon")) {
|
||||||
|
items.forEach((other) => {
|
||||||
|
if (other !== item) other.classList.remove("open");
|
||||||
|
});
|
||||||
item.classList.toggle("open");
|
item.classList.toggle("open");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user