В этом JavaScript будет сглажен прокрутка ко всем хеш-ссылкам. Мне нужен id=nav
и его результирующая хеш-ссылка, /#nav
, которая будет игнорироваться приведенным ниже JavaScript. id=nav
используется в режиме отклика меню, и когда он управляется приведенным ниже JavaScript, он разбивает меню.Существующий JavaScript, который плавно прокручивает до id, хотел бы помочь добавить исключение для определенного идентификатора
Может кто-нибудь, пожалуйста, сообщите, как я могу игнорировать определенный идентификатор в приведенном ниже JavaScript?
Также я сделал рабочую HTML-демонстрацию, которую вы можете увидеть ниже.
.top {
position: fixed;
top: 0;
}
a {
margin-left: 20px;
display: block;
}
#nav {
height: 800px;
background-color: #777;
display: block;
}
#test1 {
height: 800px;
background-color: #ccc;
display: block;
}
#test2 {
height: 800px;
background-color: #111;
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(function() {
$('a[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top - 80
}, 500);
return false;
}
}
});
});
</script>
<body>
<div class="top">
<a href="#nav">nav</a>
<a href="#test1">1</a>
<a href="#test2">2</a>
</div>
<div id="nav"></div>
<div id="test1"></div>
<div id="test2"></div>
</body>
Почему бы просто не использовать условный для проверки конкретного хэша вы не хотите, чтобы перейти к? Улучшит читаемость. –