Skip to content

Instantly share code, notes, and snippets.

@IgorGavrilenko
IgorGavrilenko / topButton
Last active March 20, 2024 11:56
topButton
// btnTop
function btnTop() {
const rootElement = document.documentElement;
const scrollToTopBtn = document.querySelector('.scroll-top');
function handleScroll() {
let scrollTotal = rootElement.scrollHeight - rootElement.clientHeight;
if ((rootElement.scrollTop / scrollTotal) > .5) {
scrollToTopBtn.classList.add('scroll-top--show');
} else {
@IgorGavrilenko
IgorGavrilenko / media jquery
Last active February 13, 2024 16:45
media jquery
const query = window.matchMedia('(min-width: 1200px)');
query.onchange = (evt) => {
if(query.matches) {
}
};
query.onchange();
@IgorGavrilenko
IgorGavrilenko / прилипающий блок
Last active January 19, 2024 09:36
прилипающий блок
gsap.registerPlugin(ScrollTrigger, ScrollSmoother, ScrollToPlugin);
// Sticky menu
function stickyMenuFunc() {
const sidebarElement = document.querySelector('.list-anchor');
const sectionSidebar = '.section__sidebar';
if (sidebarElement) {
gsap.to(sidebarElement, {
scrollTrigger: {
trigger: sidebarElement,
@IgorGavrilenko
IgorGavrilenko / активный элемент по клику
Last active October 12, 2023 12:30
активный элемент по клику
document.querySelectorAll('.row').forEach((currentRow,index,rows)=>{
currentRow.addEventListener('click',()=>{
rows.forEach((row)=> row.classList.remove('active'));
currentRow.classList.add('active');
})
})
<table>
@IgorGavrilenko
IgorGavrilenko / js collapse
Last active March 28, 2023 11:14
js collapse
document.querySelectorAll('.js-collapse').forEach(function(accordion) {
accordion.addEventListener('click', function(event) {
//event.preventDefault();
let subAccordion = accordion.querySelector('.js-collapse-target');
let clickTarget = event.target;
if( clickTarget.closest('.js-collapse-toggle') ) {
accordion.classList.toggle('open');
setTimeout(function() {
if (subAccordion.style.maxHeight) {
subAccordion.style.maxHeight = null;
@IgorGavrilenko
IgorGavrilenko / swiper инициализация
Last active February 9, 2023 09:43
swiper инициализация
(function() {
var $carousel = $('.carousel');
$carousel.each(function() {
var swiper = new Swiper(this, {
spaceBetween: 30,
freeMode: true,
centeredSlides: false,
slidesPerView: 'auto',
touchRatio: 0.2,
slideToClickedSlide: true,
@IgorGavrilenko
IgorGavrilenko / spoiler
Last active December 13, 2022 10:51
spoiler
(function() {
function tab(trigger, item) {
// $(item).hide()
$(trigger).click(function(event) {
event.stopPropagation();
$(item).not($(this).next()).slideUp(250);
$(this).next().slideToggle(250);
return false;
})
$('html').click(function(event) {
@IgorGavrilenko
IgorGavrilenko / событие прокрутки до выбранного элемента и до конца страницы
Last active December 8, 2022 02:18
событие прокрутки до выбранного элемента и до конца страницы
jQuery(window).scroll(function() {
// проверка на докрутку до определенного элемента
var scroll_picca =jQuery('.scroll_picca').offset().top;
console.log(scroll_picca) ;// выводим в консоль смещение элемента пицца
//если мы докрутили до нужного элемента
if (jQuery(this).scrollTop() > scroll_picca) {
// создаем эффекты и анимацию
jQuery(".bottom_float_menu").show();
}else{
@IgorGavrilenko
IgorGavrilenko / MutationObserver
Last active August 3, 2022 11:20
MutationObserver
// mutation
var observeObject = function () {
var _class = {
init: function (selector, callback) {
var element = document.querySelector(selector);
try {
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
callback(mutation.target, mutation.attributeName, mutation.oldValue);
@IgorGavrilenko
IgorGavrilenko / cookie (показать сообщение при первом посещении)
Last active August 3, 2022 11:16
cookie (показать сообщение при первом посещении)