Skip to content

Instantly share code, notes, and snippets.

@PonomareVlad
Last active December 30, 2018 11:16
Show Gist options
  • Save PonomareVlad/48b55aecadfdfc46d18b5a67bc5ef298 to your computer and use it in GitHub Desktop.
Save PonomareVlad/48b55aecadfdfc46d18b5a67bc5ef298 to your computer and use it in GitHub Desktop.
SlideScroll + UrlScroll + GTM
// Запускаем плагин слайдов
window.slideScroll = new SlideScroll({
lazyDisplayOffset: 3, // Количество отображаемых блоков относительно активного
debug: true // Режим отладки в консоли
});
slideScroll.onActive(slideNode => dataLayer.push({'event': 'foto_' + slideNode.order})); // GTM
slideScroll.onReady(() => {
// Запускаем плагин смены Url после того как запустился плагин слайдов
window.urlscroll = new UrlScroll({
scrollNode: '[data-slider-viewport]', // Контейнер слайдов
scrollEventNode: false, // Отключаем встроенный обработчик события прокрутки, т.к. будет использоваться обработчик плагина слайдов
debug: true, // Режим отладки в консоли
customRouterScrollWorker: node => node && SlideScroll.calcSlideOffsets(node) &&
SlideScroll.setSlideDisplay(node, true) && SlideScroll.setSlideDim(node, 0) &&
UrlScroll.asyncThread(() => window.scrollTo(0, node.sectionOffset)) // Перезаписываем обработчик, который прокручивает страницу к целевому слайду, при загрузке страницы
});
// Подписываем функцию смены адреса страницы, на событие смены активного слайда
slideScroll.onActive(urlscroll.setSectionState.bind(urlscroll));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment