Изменение js

Добрый день! Мне нужно поменять функционал скрипта 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 часов после последнего ответа. В ней больше нельзя отвечать.