Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2019, 22:18
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

Неправильная работа js-scroll
Использую следующий код для плавного перехода к якорям:
$('a.js-scroll-trigger[href*="#"]:not([href="#"])').click(function() {
    if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
      if (target.length) {
        $('html, body').animate({
          scrollTop: target.offset().top
        }, 1000, "easeInOutExpo");
        return false;
      }
    }
  });

Все ок, но при первом клике на пункт меню в шапке(которая становится fixed) заголовок перекрывается самой шапкой.
При повторном клике все становится ок.
Как сделать чтобы с первого клика заголовок не перекрывался?
Сайт:
http://dev.web-tim.ru/
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2019, 22:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Timurkin,
$('a.js-scroll-trigger[href*="#"]:not([href="#"])').click(function() {
        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
            var target = $(this.hash);
            target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
            if (target.length) {
                var up = $(window).scrollTop() > 100 ? 0 : -102;
                $('html, body').stop().animate({
                    scrollTop: target.offset().top + up
                }, 1000, "easeInOutExpo");
                return false;
            }
        }
    });
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2019, 23:14
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

рони,
Попробовал ваш вариант, срабатывает только со второго клика(
С первого клика по-прежнему загораживается заголовок
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2019, 23:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Timurkin,
сотрите кеш после замены
Ответить с цитированием
  #5 (permalink)  
Старый 13.05.2019, 23:37
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

рони,
Да сбросил первым делом кэш.
В другом браузере еще проверил, на первый клик не отрабатывает.
У вас все ок?
Ответить с цитированием
  #6 (permalink)  
Старый 13.05.2019, 23:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Timurkin
У вас все ок?
да, может дадите ссылку, где вы сделали замену?
http://dev.web-tim.ru/assets/compone...rtfolio.min.js

здесь никаких изменений нет
Ответить с цитированием
  #7 (permalink)  
Старый 13.05.2019, 23:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Timurkin,
добавьте этот код в конец страницы ... если с заменой не получается
$('a.js-scroll-trigger[href*="#"]:not([href="#"])').off().click(function() {
        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
            var target = $(this.hash);
            target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
            if (target.length) {
                var up = $(window).scrollTop() > 100 ? 0 : -102;
                $('html, body').stop().animate({
                    scrollTop: target.offset().top + up
                }, 1000, "easeInOutExpo");
                return false;
            }
        }
    });
Ответить с цитированием
  #8 (permalink)  
Старый 13.05.2019, 23:51
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

рони,
Блин, я дурак)
Не в том файле правил. Большое вам спасибо, все ок!)
А чтобы мне на будущее, в чем смысл вашей правки, мне непонятно(
Ответить с цитированием
  #9 (permalink)  
Старый 13.05.2019, 23:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Timurkin
в чем смысл вашей правки, мне непонятно(
компенсация скрипта
$(window).scroll(function(){
        if ( $(this).scrollTop() > 100 ) {
            $('#sidebar-wrapper').addClass('my-navbar-fixed-top');
        } else {
            $('#sidebar-wrapper').removeClass('my-navbar-fixed-top');
        }
    })

можно сделать проверку класса ... и добавлять прокрутку а можно так
var up = $(window).scrollTop() > 100 ? 0 : -102;
Ответить с цитированием
  #10 (permalink)  
Старый 14.05.2019, 09:27
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

var up = $(window).scrollTop() > 100 ? 0 : -102;

А что означает "100 ? 0 : -102"?
100 и 102 это пиксели как я понимаю, но в целом непонятно, первый раз такое вижу)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть работа для js программиста lodem009 Работа 3 17.03.2014 15:16
Интересная работа для JavaScript-разработчика в Москве от 120 000 linna9 Работа 1 21.01.2014 23:59
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
работа с файлами JS demix Общие вопросы Javascript 1 19.02.2010 23:56
Работа js +php без обновления страницы Jekel Javascript под браузер 18 29.11.2009 20:17