Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SWLab UI
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Jobs
Commits
Open sidebar
SWD
SWLab UI
Commits
b2c67bde
Commit
b2c67bde
authored
Oct 22, 2024
by
박민석
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rollback
parent
d2f90440
Pipeline
#21657
passed with stages
in 3 minutes and 51 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
32 deletions
+32
-32
01-nav.js
src/js/01-nav.js
+32
-32
No files found.
src/js/01-nav.js
View file @
b2c67bde
...
...
@@ -39,38 +39,38 @@
}
})
//
find(menuPanel, '.nav-link').forEach(function (link) {
//
link.addEventListener('click', function (e) {
//
var li = this.parentElement
//
var currentDepth = parseInt(li.dataset.depth, 10) // 현재 nav-item의 depth 가져오기
//
// 이미 'is-active' 클래스가 있거나 현재 navItem이 currentPageItem과 같은 경우 액션 수행 안 함
//
if (li.classList.contains('is-active') || li === currentPageItem) {
//
return // 액션을 수행하지 않고 종료
//
}
//
// href가 '#'인 경우 (클릭한 항목이 단순 펼침 액션 대상일 때)
//
if (this.getAttribute('href') === '#') {
//
// 다음 depth의 항목을 찾음 (현재 depth + 1)
//
var nextDepth = currentDepth + 1
//
var subNavList = li.querySelector('.nav-list') // 하위 리스트를 찾음
//
var firstSubNavItem = subNavList
//
? subNavList.querySelector('.nav-item[data-depth="' + nextDepth + '"] .nav-link')
//
: null
//
// 다음 depth의 항목이 있을 경우
//
if (firstSubNavItem && firstSubNavItem.href) {
//
e.preventDefault() // 기본 동작 방지
//
toggleActive.call(li) // 펼쳐짐 액션 수행
//
window.location = firstSubNavItem.href // 다음 depth의 첫 항목으로 이동
//
} else {
//
toggleActive.call(li) // 다음 depth 항목이 없을 경우 펼쳐짐 액션만 수행
//
}
//
} else {
//
toggleActive.call(li) // href가 '#'이 아닌 경우 그냥 펼쳐짐 액션만 수행
//
}
//
})
//
})
find
(
menuPanel
,
'.nav-link'
).
forEach
(
function
(
link
)
{
link
.
addEventListener
(
'click'
,
function
(
e
)
{
var
li
=
this
.
parentElement
var
currentDepth
=
parseInt
(
li
.
dataset
.
depth
,
10
)
// 현재 nav-item의 depth 가져오기
// 이미 'is-active' 클래스가 있거나 현재 navItem이 currentPageItem과 같은 경우 액션 수행 안 함
if
(
li
.
classList
.
contains
(
'is-active'
)
||
li
===
currentPageItem
)
{
return
// 액션을 수행하지 않고 종료
}
// href가 '#'인 경우 (클릭한 항목이 단순 펼침 액션 대상일 때)
if
(
this
.
getAttribute
(
'href'
)
===
'#'
)
{
// 다음 depth의 항목을 찾음 (현재 depth + 1)
var
nextDepth
=
currentDepth
+
1
var
subNavList
=
li
.
querySelector
(
'.nav-list'
)
// 하위 리스트를 찾음
var
firstSubNavItem
=
subNavList
?
subNavList
.
querySelector
(
'.nav-item[data-depth="'
+
nextDepth
+
'"] .nav-link'
)
:
null
// 다음 depth의 항목이 있을 경우
if
(
firstSubNavItem
&&
firstSubNavItem
.
href
)
{
e
.
preventDefault
()
// 기본 동작 방지
toggleActive
.
call
(
li
)
// 펼쳐짐 액션 수행
window
.
location
=
firstSubNavItem
.
href
// 다음 depth의 첫 항목으로 이동
}
else
{
toggleActive
.
call
(
li
)
// 다음 depth 항목이 없을 경우 펼쳐짐 액션만 수행
}
}
else
{
toggleActive
.
call
(
li
)
// href가 '#'이 아닌 경우 그냥 펼쳐짐 액션만 수행
}
})
})
if
(
navMenuToggle
&&
menuPanel
.
querySelector
(
'.nav-item-toggle'
))
{
navMenuToggle
.
style
.
display
=
''
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment