Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2018, 17:46
Аватар для DirtyRomirez
Новичок на форуме
Отправить личное сообщение для DirtyRomirez Посмотреть профиль Найти все сообщения от DirtyRomirez
 
Регистрация: 20.10.2018
Сообщений: 2

Конфликт 2-х функций на JQuery, почему одна перебивает другую?
$(function() {
	// ФУНКЦИЯ ПРОКРУТКИ ОТ КНОПОК МЕНЮ К АНКОРАМ
	$('.menu__item a').on('click', function(e) {
		e.preventDefault();

		$('.menu__item a').removeClass('active').filter(this).addClass('active');

		var selector = $(this).attr('href');
		var goTo = $(selector);

		$('html, body').animate({
			scrollTop: goTo.offset().top
		},500);
	});

		/* ФУНКЦИЯ, КОТОРАЯ ОТОБРАЖАЕТ КНОПКУ "ВВЕРХ" И ОТВЕЧАЕТ
	ЗА ЕЁ РАБОТУ */
	$(window).on('scroll', function(){
		var $arrow = $('.arrow');
		var scrolled = $(this).scrollTop();

		if (scrolled >= 500) {
			$arrow.fadeIn();

		} else if (scrolled < 500) {
			$arrow.fadeOut();
		}

		$arrow.on('click', function(e){
			e.preventDefault();

			$('html, body').animate({
				scrollTop: 0
			},800);
		});
	});
});


Всем привет, друзья!!! В общем сделал две функции на JQuery.

Суть первой функции: - Она отмечает активные пункты меню + По клику на пункт меню выполняется плавный скролл к соответствующему анкору сайта.

Суть второй функции: - Она показывает скрытую ранее кнопку arrow (при прокрутке окна браузера на 500px), по клику на эту кнопку браузер плавно прокручивается на самый верх.

А теперь суть вопроса: По отдельности все работает, но если нажать на кнопку вверх, то окно прокручивается нормально, но после этого не работает прокрутка с кнопок меню. Я так полагаю, что конфликт именно в той части когда к (html, body) применяется метод animate в обеих функциях, в результате вторая сбивает первую. Но почему так происходит, ведь функции подвешены на разных событиях и по идее не должны конфликтовать..

p.s. При вышеописанной проблеме нет абсолютно никаких ошибок в консоли.
Вложения:
Тип файла: zip problem.zip (3.8 Кб, 0 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2018, 18:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DirtyRomirez,
Сообщение от DirtyRomirez
по клику на эту кнопку браузер плавно прокручивается на самый верх.
клик назначается по вашей схеме сотни раз, браузер не выдерживает этого.
перенесите строки 19 и 29 в строку 15
Ответить с цитированием
  #3 (permalink)  
Старый 20.10.2018, 19:02
Аватар для DirtyRomirez
Новичок на форуме
Отправить личное сообщение для DirtyRomirez Посмотреть профиль Найти все сообщения от DirtyRomirez
 
Регистрация: 20.10.2018
Сообщений: 2

Сообщение от рони Посмотреть сообщение
DirtyRomirez,

клик назначается по вашей схеме сотни раз, браузер не выдерживает этого.
перенесите строки 19 и 29 в строку 15
Зарабатало! Спасибо Вам огромное, полдня голову ломаю. Без Вас бы не справился

p.s. Подскажите, пожалуйста клик вызывался столько раз из-за того что был внутри функции измеряющей скролл?? И получается количество кликов прямопропорционально количеству отсчетов скролла? Просто интересна причина этих многократных скроллов, чтобы больше не тупить.

Последний раз редактировалось DirtyRomirez, 20.10.2018 в 19:06.
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2018, 19:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от DirtyRomirez
p.s. Подскажите, пожалуйста клик вызывался столько раз из-за того что был внутри функции измеряющей скролл?? И получается количество кликов прямопропорционально количеству отсчетов скролла?
да
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конфликт плагинов jQuery. Flashton Элементы интерфейса 4 22.12.2017 12:15
Почему не работает на jQuery 1.4.4? pro10026 jQuery 13 06.03.2014 10:22
Конфликт Jquery и Mootools Bangoo jQuery 1 28.03.2011 13:03
Почему jQuery является одновременно функцией и объектом? FINoM jQuery 3 14.02.2011 02:44
Почему jQuery плагины? a.vovchuk jQuery 9 04.01.2011 19:03