Вопрос по JavaScript прокрутка по странице к айди

103
14 февраля 2018, 13:08

Всем привет. Вопрос по прокрутке страницы к айдишнику. Делаю сайт на вордпрессе rosstroyservice.mcdir.ru Нужно, чтобы при наличии определенной строки в url адрессе, а именно 'product-category', прокручивало страницу к определенному айдишнику, в моем случае #primary. Вот, что удалось накопипастить моими кривыми клешнями из гугла.

jQuery( document ).ready(function($){ 
function slowScroll(id){ 
			console.log( id ); 
				var offset=0; 
				$('html', 'body').animate({ 
					scrollTop: $(id).offset().top - offset 
				}, 500); 
				return false; 
				 
			}; 
`` 
	 
slowScroll('#primary'); 
}); 
if (window.location.href.indexOf('product-category') > -1){ 
			console.log( "category!" ); 
			slowScroll('#primary'); 
			 
		}; 
	 
	

Но так как я деревянный по пояс в написании скриптов, у меня ничего не работает(ну хоть ошибки не выдает)). Вообщем хэлп! Что неправильно у меня?

Answer 1

Вы вызываете функцию, которую определили внутри другой функции из глобального контекста.
Она там не определена(к тому же, к моменту вызова она ещё не определена нигде).
Перенесите вызов внутрь функции:

jQuery(document).ready(function($) {
  function slowScroll(selector) {
    $('html, body')
       .stop()
       .animate({scrollTop: $(selector).offset().top}, 500);
  };
  if (window.location.href.indexOf('product-category') > -1) {
    slowScroll('#primary');
  };
});

Также, селектор элемента('html, body') должен быть одной строкой.

READ ALSO
Не добавляется элемент innerHTML

Не добавляется элемент innerHTML

Этот код работает в песочнице jsfiddlenet, но не работает на моём сайте

76
Casperjs проблема с casper.click() и casper.clickLabel()

Casperjs проблема с casper.click() и casper.clickLabel()

Всем доброго дняУ меня проблема такая: Я не могу нажать на определенную ссылку которая открывает мне какую-то часть <div>(А это мне надо потому...

107
Как вывести время в HTML?

Как вывести время в HTML?

как вывести переменную qw на HTML и чтобы часы работали в реальном времени?

80