Cześć,
Ponieważ to mój pierwszy post, zatem na początku witam wszystkich na forum.
Ponieważ dopiero raczkuję w JS i jQuery, może ktoś podpowie, jak poradzić sobie z breakpointami w jQuery?
Na stronce mam u góry przypięte menu w position fixed i height 200px. W menu podlinkowane przewijanie do konkretnego section za pomocą jQuery. Dokładnie wybrane section podjeżdża do góry strony.
Mój kod (to co wydało mi się istotne):
html
<nav>
<a class="region" href="#">Okolica</a>
</nav>
<section class="s1"> <section>
css
nav {
height: 200px;
}
@media (max-width: 1024px) {
nav {
height: 100px;
}
}
jQuery
$('.region').on('click', function () {
$('body, html').animate({
scrollTop: $('.s1').offset().top - 200
}, 2000)
})
Sęk w tym, że utworzyłem w css breakpointy i np. poniżej 1024px menu ma już wysokość 100px. Macie pomysł, jak przerobić regułę w jQuery, aby poniżej 1024px przewijała się do "top - 100"?
W jednym z filmików na YT znalazłem coś takiego:
document.addEventListener('DOMContentLoaded', init);
function init(){
let query = window.matchMedia("(max-width: 1024px)");
if(query.matches){
//co ma się wydarzyć
}}
i złożyłem to tak
document.addEventListener('DOMContentLoaded', init);
function init(){
let query = window.matchMedia("(max-width: 1024px)");
if(query.matches){
$('.region').on('click', function () {
$('body, html').animate({
scrollTop: $('.s1').offset().top - 100
}, 2000)
})
}}
Niestety nie działa i .s1 nadal zatrzymuje się na top - 200.
Podrzuci ktoś jakiś pomysł?
Pozdrawiam