Добрый день! Мне нужно поменять функционал скрипта sticky-panel возможно ли поменять скрипт не трогая файл abt__ut2.js? Хочу через свой модуль
Как вариант, в модуле перезаписать файл design/themes/abt__unitheme2/templates/addons/abt__unitheme2/hooks/index/scripts.pre.tpl и в нем уже использовать вместо abt__ut2.js свой вариант файла
1 лайк
Тоже вариант.
js при котором sticky-panel статична. А header выходит когда скроллиш вверх и скрывается когда скроллиш вниз. Еще исправил то что когда доходиш до вверха header подпрыгивает. Если кому нужно пусть будет здесь:
$(document).ready(function(){
let ENABLE_STICKY_HEADER_PANEL = _.abt__ut2.settings.general.top_sticky_panel.enable[_.abt__ut2.device] === 'Y',
ENABLE_STICKY_PANEL = _.abt__ut2.settings.general.sticky_panel.enable_sticky_panel[_.abt__ut2.device] === 'Y',
ENABLE_STICKY_FC_PANEL = _.abt__ut2.settings.category.show_sticky_panel_filters_and_categories[_.abt__ut2.device] === 'Y';
if(ENABLE_STICKY_HEADER_PANEL || ENABLE_STICKY_PANEL || ENABLE_STICKY_FC_PANEL) {
var header_selector = '#tygh_main_container > .tygh-header > .header-grid';
var top_panel = $('#tygh_main_container > .tygh-top-panel'),
header = $(header_selector),
menu = $('.header-grid > .top-menu-grid'),
search = $('.search-grid'),
b = $('body'),
h = $('.header-grid'),
t = $('.tygh-header'),
fc = $('.top-sticky-panel__filters'),
top_panel_height = top_panel.height() || 0,
menu_height = menu.height() || 0,
fc_height = fc.outerHeight(),
search_height = search.outerHeight(),
height = header.outerHeight();
if(ENABLE_STICKY_HEADER_PANEL){
var fixed = 'fixed-header';
}
if(ENABLE_STICKY_PANEL) {
var sticky = 'sticky-panel';
}
if(ENABLE_STICKY_FC_PANEL) {
var fc_sticky = 'sticky-fc-panel';
}
if (h.hasClass('advanced-header')) {
t.addClass('advanced_header');
}
if (h.hasClass('default-header')) {
t.addClass('default_header');
}
if (h.hasClass('light-header')) {
t.addClass('light_header');
}
if (h.hasClass('v2')) {
t.addClass('v2');
}
var lastScrollTop = 0;
}
if(ENABLE_STICKY_HEADER_PANEL || ENABLE_STICKY_PANEL || ENABLE_STICKY_FC_PANEL){
$(window).on('resize scroll', function(e) {
var scroll = $(window).scrollTop();
var direction = (scroll > lastScrollTop) ? 'down' : 'up';
lastScrollTop = scroll;
if(ENABLE_STICKY_FC_PANEL) {
b.addClass(fc_sticky);
}
if(ENABLE_STICKY_HEADER_PANEL) {
if (h.hasClass('advanced-header')) {
if (Math.floor(scroll) >= (top_panel_height + height) && !b.hasClass(fixed)) {
b.addClass(fixed);
b.css('padding-top', (height - menu_height));
} else if (Math.floor(scroll) < (top_panel_height + (height - menu_height))) {
b.removeClass(fixed);
b.css('padding-top', 0);
}
}
if (h.hasClass('default-header')) {
if (document.documentElement.clientWidth > 768) {
if (Math.floor(scroll) > (top_panel_height + menu_height)) {
b.addClass(fixed);
} else {
b.removeClass(fixed);
}
} else {
if (Math.floor(scroll) > (height + top_panel_height)) {
b.addClass(fixed);
b.css('padding-top', height);
} else {
b.removeClass(fixed);
b.css('padding-top', 0);
}
}
}
if (h.hasClass('light-header') && top_panel_height > 0) {
if (document.documentElement.clientWidth < 768) {
if (direction === 'up' && Math.floor(scroll) >= (height - top_panel_height)) {
b.addClass(fixed);
} else if (direction === 'down') {
b.removeClass(fixed);
} else {
b.addClass(fixed);
}
} else {
if (Math.floor(scroll) >= (height - top_panel_height)) {
b.addClass(fixed);
} else {
b.removeClass(fixed);
}
}
}
if(ENABLE_STICKY_PANEL && !(_.abt__ut2.controller === 'checkout' && _.abt__ut2.mode === 'checkout')) {
b.addClass(sticky);
}
});
}
});
Если что поменял только для light-header
Таким же методом можно сделать и в других классах
2 лайка
Эта тема была автоматически закрыта через 12 часов после последнего ответа. В ней больше нельзя отвечать.