Оператор “или” в проверке якоря

239
21 февраля 2017, 19:23

Нужно проверять несколько якорей и выполнять действия, как это сделать ?

Мой код не работает почему-то:

if (window.location.hash == '#dynamic') && (window.location.hash == '#testing') { 
  $('html, body').animate({ 
    scrollTop: $('#tabs').offset().top 
  }, 1000); 
}

Answer 1

Условие не правильное

if ((window.location.hash == '#dynamic') || (window.location.hash == '#testing')) {
  $('html, body').animate({
    scrollTop: $('#tabs').offset().top
  }, 1000);
}
Answer 2

Сделал минималистический пример на jQuery. В ссылку через # записывается id блока, к которому нужно перейти, однако в URL хеши не добавляются. Работает для любой ссылки на странице, в которой указан id блока для перехода.

// Page a Link Smooth Scrolling 
$("[href^='#']").click(function() { 
var idtop = $($(this).attr("href")).offset().top; 
$('html,body').animate( 
    // Time animation 
    {scrollTop: idtop}, 500); 
return false; 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<style> 
div{height:100vh} 
#block1{background: #000} 
#block1 a{color: #fff} 
</style> 
 
<div id="block1"> 
<a href="#block2">скролл к следующему блоку</a> 
</div> 
<div id="block2"> 
<a href="#block1">скролл к предыдущему блоку</a> 
</div>

READ ALSO
Анимировать по очереди SVG Path

Анимировать по очереди SVG Path

Как анимировать сначала первый тег path, а затем другой?

385
Счётчик кликов для разных блоков через делегирование JS

Счётчик кликов для разных блоков через делегирование JS

Есть код который название блока и считает клики по кнопкеПроблема в том что поле с количеством кликов меняется один раз

700
Запретить вызов stopNativeEvents в dojo/touch.js

Запретить вызов stopNativeEvents в dojo/touch.js

Проблема в том, что код ниже мешает корректно работать кликуПодскажите как мне пропустить вызов win

273
Сериализация React Bootstrap формы в объект

Сериализация React Bootstrap формы в объект

Есть форма, созданная с помощью React Bootstrap компонент:

328