Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не работает scrollTop() на сайте (https://javascript.ru/forum/events/66752-ne-rabotaet-scrolltop-na-sajjte.html)

smart-create 08.01.2017 15:28

Не работает scrollTop() на сайте
 
Добрый день, обнаружил проблему которая ввергла меня в панику))

есть вот такой вот, простенький скрипт:
$(document).ready(function(){ 
	$('a[href*="#"]').bind("click", function(e){ 
		var anchor = $(this); 
		$('body').animate({ 
			scrollTop: $(anchor.attr('href')).offset().top
		}, 1000);
		return false;
	});
});


Он обеспечивает плавный переход по якорной ссылке. Всегда работал, а тут как по волшебству перестал. И консоль нечего не выдает, просто при нажатии на якорную ссылку нечего не проходит.

Я стал пошагово разбираться в чем же дело и обнаружил что scrollTop() просто не работает.

То есть беру к примеру, вот это:
$('body').animate({ 
	scrollTop: $(anchor.attr('href')).offset().top
}, 1000);


меняю переменную anchor.attr('href'), на реальный существующий id блока. получается:
$('body').animate({ 
	scrollTop: $('#news').offset().top
}, 1000);


И запускаю все это дело через консоль - нечего.

Пошел дальше, написал парочку скриптов в которых используется scrollTop(), например вот этот:
$(window).on('scroll', function() {
	if ($(window).scrollTop() + $(window).height() > $('#news').outerHeight()) {
		console.log('я тут')
	}
});


Тоже нечего, от сюда проситься вывод что scrollTop() не работает на данном сайте. Причину понять я не могу, помогите пожалуйста разобраться.

На всякий случай, ссылка на сайт

рони 08.01.2017 16:22

smart-create,
после строки
<script src="library/js/bootstrap.min.js"></script>

$ работать не будет -- эту строку перенести вниз страницы - либо все $ поменять на jQuery
исправить ошибки в html -- и в ссылках указывать только hash
:(
1500 описание вашей беды и всех любителей bootstrap

smart-create 08.01.2017 16:40

рони, перенес строку с бутстрапом в самый конец, не помогло (попробовал и удалить её вообще, и $ поменять на jQuery, все равно не работает):(

рони 08.01.2017 16:45

Цитата:

Сообщение от smart-create
все равно не работает

работает!!!

smart-create 08.01.2017 16:52

рони, кажется понял, я смотрю через оперу - не работает, посмотрел через мозилу - там работает, но не правильно работает.
Допустим, если находиться в самом начале страницы, то кнопка "Забронировать номер" или "Пролистайте вниз" отработают правильно, НО если немного проскролить вниз попробуйте нажать на них, "Забронировать номер" - не докинет до нужного блока пикселей на 250, а "Пролистайте вниз", наоборот поднимет вверх.

Также и с остальными кнопками.
Повторюсь, в Опере и Хроме вообще не работает...

рони 08.01.2017 17:14

smart-create,
Цитата:

Сообщение от рони
исправить ошибки в html

без этого дальше, сложно.
и смотрите в консоль.

smart-create 08.01.2017 17:17

рони, не совсем понимаю о каких ошибках Вы говорите?

и консоль молчит, там нечего

рони 08.01.2017 17:27

smart-create,
https://validator.w3.org/nu/?doc=htt...bavaria.net%2F
править всё не обязательно, но хотябы страницу признали за html
Цитата:

Error: Тип данного документа не HTML: undefined


smart-create 08.01.2017 18:10

рони, исправил все что мог, осталось 74 ошибки, но они все однотипные и каждая из них обусловлена бутстрапом

И снова прошу прощения за не понимание, ошибки я по убирал, но вот этого так и не понял:
"Error: Тип данного документа не HTML: undefined"

рони 08.01.2017 18:52

smart-create,
<link href="library/css/slidefolio.css?v=4" rel="stylesheet" />
тут смотрите -- если убрать всё работает


Часовой пояс GMT +3, время: 19:08.