Здравствуйте. Помогите интегрировать и научить как интегрировать сторонний скрипт.
Вложение | Размер |
---|---|
main.zip | 3.08 КБ |
Здравствуйте. Помогите интегрировать и научить как интегрировать сторонний скрипт.
Вложение | Размер |
---|---|
main.zip | 3.08 КБ |
Спасибо. Решил.
Drupal.behaviors.myBehavior = {
attach: function (context) {
var $context = $(context);
/* здесь наш js */
if ( $('body').hasClass('header-fixed') ) {
var nav = $('#site-header');
if ( $('body').is('.header-style-8') ) {
var nav = $('.site-navigation-wrap');
}
if ( nav.length ) {
var offsetTop = nav.offset().top,
headerHeight = nav.height(),
injectSpace = $('<div />', {
height: headerHeight
}).insertAfter(nav);
$(window).on('load scroll', function(){
if ( $(window).scrollTop() > offsetTop ) {
nav.addClass('is-fixed');
injectSpace.show();
} else {
nav.removeClass('is-fixed');
injectSpace.hide();
}
if ( $(window).scrollTop() > 300 ) {
nav.addClass('is-small');
} else {
nav.removeClass('is-small');
}
})
}
}
}
/* здесь КОНЕЦ КОДА js */
};
})(jQuery, Drupal);
Комментарии
Через libraries в файле темы Моя-тема.info.yml. Не забудьте обернуть ваш скрипт в behavior.
Если вкратце, то кладете свой скрипт в каталог темы оформления, добавляете его в файл ИМЯТЕМЫ.libraries.yml а затем нужно приаттачить эту библиотеку куда надо. Если для всех страниц без исключения, то как написал комментатор выше, можно будет добавить в .info.yml файл темы
Вот только не понимаю как обернуть (во вложении: main) скрипт в behavior.
attach: function (context, settings) {
$('.example', context).click(function () {
});
}
};
Не работает.
Что именно не работает?
(function ($, Drupal) {
"use strict";
Drupal.behaviors.myBehavior = {
attach: function (context) {
var $context = $(context);
/* здесь наш js */
alert('Yahoooo!');
/* здесь КОНЕЦ КОДА js */
}
};
})(jQuery, Drupal);
Спасибо. Решил.
"use strict";
Drupal.behaviors.myBehavior = {
attach: function (context) {
var $context = $(context);
/* здесь наш js */
if ( $('body').hasClass('header-fixed') ) {
var nav = $('#site-header');
if ( $('body').is('.header-style-8') ) {
var nav = $('.site-navigation-wrap');
}
if ( nav.length ) {
var offsetTop = nav.offset().top,
headerHeight = nav.height(),
injectSpace = $('<div />', {
height: headerHeight
}).insertAfter(nav);
$(window).on('load scroll', function(){
if ( $(window).scrollTop() > offsetTop ) {
nav.addClass('is-fixed');
injectSpace.show();
} else {
nav.removeClass('is-fixed');
injectSpace.hide();
}
if ( $(window).scrollTop() > 300 ) {
nav.addClass('is-small');
} else {
nav.removeClass('is-small');
}
})
}
}
}
/* здесь КОНЕЦ КОДА js */
};
})(jQuery, Drupal);
Отлично, только var надо бы заменить на let или const.