<div class="sticky-jump-nav">
<div class="sticky-jump-nav__inner">
<nav class="sticky-jump-nav__nav">
<div class="sticky-jump-nav__list">
<div class="sticky-jump-nav__item">
<div role="button" class="sticky-jump-nav__link" href="#">Excepteur ut</div>
</div>
<div class="sticky-jump-nav__item">
<div role="button" class="sticky-jump-nav__link" href="#">Reprehenderit dolor id</div>
</div>
<div class="sticky-jump-nav__item">
<div role="button" class="sticky-jump-nav__link" href="#">Minim ea Labore</div>
</div>
<div class="sticky-jump-nav__item">
<div role="button" class="sticky-jump-nav__link" href="#">Cillum Fugiat</div>
</div>
<div class="sticky-jump-nav__item">
<div role="button" class="sticky-jump-nav__link" href="#">Dolore</div>
</div>
<div class="sticky-jump-nav__item">
<div role="button" class="sticky-jump-nav__link" href="#">Dolore Reprehenderit</div>
</div>
</div>
</nav>
</div>
</div>
<div class="sticky-jump-nav{{modifierClasses|lspace}}">
<div class="sticky-jump-nav__inner">
<nav class="sticky-jump-nav__nav">
<div class="sticky-jump-nav__list">
{% for link in links -%}
<div class="sticky-jump-nav__item">
<div role="button" class="sticky-jump-nav__link" href="{{link.href}}">{{link.label}}</div>
</div>
{%- endfor %}
</div>
</nav>
</div>
</div>
{
"links": [
{
"href": "#",
"label": "Excepteur ut"
},
{
"href": "#",
"label": "Reprehenderit dolor id"
},
{
"href": "#",
"label": "Minim ea Labore"
},
{
"href": "#",
"label": "Cillum Fugiat"
},
{
"href": "#",
"label": "Dolore"
},
{
"href": "#",
"label": "Dolore Reprehenderit"
}
]
}
$(function () {
const $stickyJumpNav = $('.sticky-jump-nav')
if ($stickyJumpNav.length) {
const navDistanceTop = $stickyJumpNav.offset().top
if (window.matchMedia('(max-width: 991px)').matches) {
$('.sticky-jump-nav__link').on('click touch', e => e.preventDefault())
const $stickyJumpCarousel = $('.sticky-jump-nav__list').slick({
accessibility: false,
arrows: false,
infinite: false,
mobileFirst: true,
centerMode: true,
touchMove: false,
centerPadding: '0px',
focusOnSelect: true,
variableWidth: true,
})
// $(window).on('load resize scroll', () => {
// $.each($('.scrollspy'), (i, el) => {
// const id = $(el).attr('id')
// const anchor = `#${id}`
// const scroll = window.scrollspy[anchor]
// if (window.scrollY >= (scroll.top - 5) && window.scrollY <= (scroll.bot - 5)) {
// $stickyJumpCarousel.slick('slickGoTo', $(`[href="${anchor}"]`).parent().data('slick-index'))
// }
// })
// })
}
$(window).on('load resize scroll', () => {
if (window.scrollY >= navDistanceTop) {
$stickyJumpNav.addClass('sticky-jump-nav--is-scrolled')
} else {
$stickyJumpNav.removeClass('sticky-jump-nav--is-scrolled')
}
})
}
})
.sticky-jump-nav {
$this: &;
background: transparent;
display: block;
position: sticky;
top: 0;
transition: all 250ms linear;
z-index: 999;
.slick-track {
display: flex !important;
}
&__inner {
@include media-lg-up {
@include container;
}
}
&__list {
@include media-lg-up {
display: flex;
align-items: flex-end;
justify-content: center;
}
}
&__item {
height: rem(48px);
display: flex !important;
align-items: flex-end;
justify-content: stretch;
&.scrollspy--active {
#{$this}__link {
color: $color-primary-red;
font-weight: 600;
}
}
}
&__link {
@extend .px-16;
@extend .py-4;
background: $color-white;
border-radius: rem(8px) rem(8px) 0 0;
color: $color-primary-blue;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
height: rem(40px);
margin-inline: rem(2px);
text-decoration: none;
transition: height 250ms linear;
white-space: nowrap;
&:hover,
&:focus {
color: $color-primary-red;
height: rem(48px);
}
}
&--is-scrolled {
background: $color-sky-light;
border-bottom: rem(1px) solid $color-sky;
padding-block: rem(4px);
#{$this}__item {
height: rem(30px);
}
#{$this}__link {
background: transparent;
height: rem(30px);
margin-inline: 0;
}
}
}
No notes defined.