Неправильная работа 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/ |
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; } } }); |
рони,
Попробовал ваш вариант, срабатывает только со второго клика( С первого клика по-прежнему загораживается заголовок |
Timurkin,
сотрите кеш после замены |
рони,
Да сбросил первым делом кэш. В другом браузере еще проверил, на первый клик не отрабатывает. У вас все ок? |
Цитата:
http://dev.web-tim.ru/assets/compone...rtfolio.min.js здесь никаких изменений нет |
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; } } }); |
рони,
Блин, я дурак) Не в том файле правил. Большое вам спасибо, все ок!) А чтобы мне на будущее, в чем смысл вашей правки, мне непонятно( |
Цитата:
$(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; |
var up = $(window).scrollTop() > 100 ? 0 : -102; А что означает "100 ? 0 : -102"? 100 и 102 это пиксели как я понимаю, но в целом непонятно, первый раз такое вижу) |
Часовой пояс GMT +3, время: 23:50. |