Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Плавный переход к элементу по внешней ссылке (https://javascript.ru/forum/jquery/58675-plavnyjj-perekhod-k-ehlementu-po-vneshnejj-ssylke.html)

deniskutovskiy 07.10.2015 10:51

Цитата:

Сообщение от laimas (Сообщение 391065)
Имейте ввиду, что этот плагин (обе его составляющие) зачастую включается в файл типа helper-plugins.js подключаемому в шаблонах, которые можно видеть в сети.


А можно ссылочку на какую-нибудь информацию по теме helper-plugins.js? Гугл в таком виде не выдает внятной подборки ссылок.

laimas 07.10.2015 11:35

Эта "солянка" собирается разработчиком, может называть и как просто helper.js, так что кроме исходника вряд ли что-то найти. Как придется работать с готовым шаблоном, то не мешало бы сразу проверить какие скрипты подключаются, чтобы не дублировать.

deniskutovskiy 16.10.2015 20:50

Цитата:

Сообщение от deniskutovskiy (Сообщение 391030)
Решил задачу с помощью jQuery.LocalScroll (спасибо laimas).
«Поправку» установил с помощью все того же параметра offset. Конечный код оказался проще, чем я думал:
$(document).ready(function(){
				
				$($.localScroll({
					hash: true,
					offset: -100
				}));
				
			});

«hash: true» подглядел как раз в
Спасибо большое вам, товарищи, за приложенные усилия! :thanks:

Странное дело: вернулся к работе над сайтом и столкнулся с проблемой. Похоже, что она была изначально, но я не обратил внимание (рано обрадовался). В общем имеется:
Плавный переход к объектам в рамках одной страницы происходит верно.
НО: Переход с другой страницы происходит странно. Вместо скролла к нужному элементу (соответствующему id после # в url) происходит непонятный недоскролл (скажем на 1000 пикселей), и так с каждым элементом, к которому пытаюсь перейти (с другой страницы по адресу с хешем). То же происходит и при обновлении этой же самой страницы (с хешем в url). Наличие «offset: -100» на результат не влияет.
Я знал, что это было слишком простым решением задачи. Прошу помощи, товарищи!
Ссылку на сайт скинуть не могу (не имею права), но, если не совсем понятно ДАНО, могу состряпать демо, воспроизводящее проблему.

deniskutovskiy 16.10.2015 22:30

Цитата:

Сообщение от deniskutovskiy (Сообщение 392233)
Плавный переход к объектам в рамках одной страницы происходит верно.
НО: Переход с другой страницы происходит странно. Вместо скролла к нужному элементу (соответствующему id после # в url) происходит непонятный недоскролл (скажем на 1000 пикселей), и так с каждым элементом, к которому пытаюсь перейти (с другой страницы по адресу с хешем). То же происходит и при обновлении этой же самой страницы (с хешем в url). Наличие «offset: -100» на результат не влияет.

Жесть какая-то. В общем добавил код с другого сайта (последний пост ссылается на страницу с кодом). Каким-то образом прокатило. Пока работает. Если перестанет, отпишусь (даже проверил еще раз на всякий случай перед нажатием «Ответить»). В результате получил код:

//===== ДЛЯ ВНЕШНЕЙ ССЫЛКИ //
(function($){
  $(document).on("ready", function () {
      var urlHash = window.location.href.split("#")[1];
      $('html,body').animate({
          scrollTop: $('.' + urlHash + ', #' + urlHash +',[name='+urlHash+']').first().offset().top -100
      }, 1000);
  });
 
})(jQuery);

//===== ДЛЯ ЛОКАЛЬНОЙ ССЫЛКИ //
$(document).ready(function(){
				
				$($.localScroll({
					hash: true,
					offset: -100
				}));
				
			});


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