Дополнительные кнопки для карточки товара
Модификация добавляет дополнительные кнопки к карточке товара. Позволяет создать до 3-х кастомных кнопок с индивидуальными стилями и ссылками.
Инструкция по установке
Создайте и настройте блок магазина ST200 / ST 205 / ST210
Вставьте код в блок T123 ниже блока карточки товара
Измените все настройки в коде на свои
1.
2.
3.
Сохраните и переопубликуйте страницу
4.
<!-- meloddy.design - Дополнительные кнопки для карточки товара -->
<script>
    document.addEventListener('DOMContentLoaded', function() {
        // Параметры для обертки кнопок
        const flexDirection = true; // true = в строку, false = в колонку
        const gapSize = '20px'; // расстояние между кнопками
        
        // Общие параметры для кнопок
        const btnPadding = '12px 30px'; // паддинги в кнопке верх-низ / лево право
        const mobilePadding = '10px 20px'; // паддинги в кнопке на мобильных устройствах верх-низ / лево право 
        const border = '1px solid #e1e1e1'; // обводка: жирность -> целостность -> цвет
        const borderRadius = '10px'; // скругления обводки
        const mobileBorderRadius = '8px'; // скругления обводки для мобильных
        const textSize = '14px'; // размер текста
        const mobileTextSize = '12px'; // размер текста для мобильных
        const fontWeight = '500'; // жирность текста
        const fontFamily = 'Vela Sans'; // семейство шрифтов
        const transition = 'background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease';
        
        // Настройки для первой кнопки
        const btn1 = {
            link: '/',
            color: '#f8f8f8',
            textColor: '#000000',
            hoverBgColor: '#ffffff',
            hoverTextColor: '#000000',
            hoverBorderColor: '#e1e1e1',
            text: 'КНОПКА 1'
        };
        
        // Настройки для второй кнопки
        const btn2 = {
            link: '/',
            color: '#f8f8f8',
            textColor: '#000000',
            hoverBgColor: '#ffffff',
            hoverTextColor: '#000000',
            hoverBorderColor: '#e1e1e1',
            text: 'КНОПКА 2'
        };
        

        let btnWrapper = null;
        const wrapperSelectors = [
            '.t760__btn-wrapper',
            '.t762__btn-wrapper',
            '.t744__btn-wrapper'
        ];
        for (let selector of wrapperSelectors) {
            btnWrapper = document.querySelector(selector);
            if (btnWrapper) break;
        }
        btnWrapper.style.display = 'flex';
        btnWrapper.style.flexWrap = 'wrap';
        btnWrapper.style.gap = gapSize;
        btnWrapper.style.flexDirection = flexDirection ? 'row' : 'column';
        
        function createButton(settings) {
            const btn = document.createElement('button');
            btn.classList.add('custom-button');
            
            btn.style.padding = btnPadding;
            btn.style.backgroundColor = settings.color;
            btn.style.color = settings.textColor;
            btn.style.fontSize = textSize;
            btn.style.fontWeight = fontWeight;
            btn.style.border = border;
            btn.style.borderRadius = borderRadius;
            btn.style.fontFamily = fontFamily;
            btn.style.cursor = 'pointer';
            btn.style.display = 'flex';
            btn.style.alignItems = 'center';
            btn.style.justifyContent = 'center';
            btn.style.transition = transition;
            
            btn.textContent = settings.text;
            
            const mediaQuery = window.matchMedia('(max-width: 639px)');
            function applyMobileStyles() {
                btn.style.padding = mobilePadding;
                btn.style.borderRadius = mobileBorderRadius;
                btn.style.fontSize = mobileTextSize;
            }
            function applyDesktopStyles() {
                btn.style.padding = btnPadding;
                btn.style.borderRadius = borderRadius;
                btn.style.fontSize = textSize;
            }
            if (mediaQuery.matches) {
                applyMobileStyles();
            }
            mediaQuery.addEventListener('change', (event) => {
                if (event.matches) {
                    applyMobileStyles();
                } else {
                    applyDesktopStyles();
                }
            });
            btn.addEventListener('mouseover', function() {
                btn.style.color = settings.hoverTextColor;
                btn.style.backgroundColor = settings.hoverBgColor;
                btn.style.borderColor = settings.hoverBorderColor;
            });
            btn.addEventListener('mouseout', function() {
                btn.style.color = settings.textColor;
                btn.style.backgroundColor = settings.color;
                btn.style.borderColor = '#e1e1e1';
            });
            btn.addEventListener('click', function() {
                window.location.href = settings.link;
            });
            
            return btn;
        }
        
        // Создаем и добавляем кнопки
        btnWrapper.appendChild(createButton(btn1)); // Создание 1 кнопки
        btnWrapper.appendChild(createButton(btn2)); // Создание 2 кнопки
    });
</script>
Копировать код
  
document.addEventListener('DOMContentLoaded', function() {
// Параметры для обертки кнопок
const flexDirection = true; // true = в строку, false = в колонку
const gapSize = '20px'; // расстояние между кнопками
// Общие параметры для кнопок
const btnPadding = '12px 30px'; // паддинги в кнопке верх-низ / лево право
const mobilePadding = '10px 20px'; // паддинги в кнопке на мобильных устройствах верх-низ / лево право
const border = '1px solid #e1e1e1'; // обводка: жирность -> целостность -> цвет
const borderRadius = '10px'; // скругления обводки
const mobileBorderRadius = '8px'; // скругления обводки для мобильных
const textSize = '14px'; // размер текста
const mobileTextSize = '12px'; // размер текста для мобильных
const fontWeight = '500'; // жирность текста
const fontFamily = 'Vela Sans'; // семейство шрифтов
const transition = 'background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease';
// Настройки для первой кнопки
const btn1 = {
link: '/',
color: '#f8f8f8',
textColor: '#000000',
hoverBgColor: '#ffffff',
hoverTextColor: '#000000',
hoverBorderColor: '#e1e1e1',
text: 'КНОПКА 1'
};
// Настройки для второй кнопки
const btn2 = {
link: '/',
color: '#f8f8f8',
textColor: '#000000',
hoverBgColor: '#ffffff',
hoverTextColor: '#000000',
hoverBorderColor: '#e1e1e1',
text: 'КНОПКА 2'
};
let btnWrapper = null;
const wrapperSelectors = [
'.t760__btn-wrapper',
'.t762__btn-wrapper',
'.t744__btn-wrapper'
];
for (let selector of wrapperSelectors) {
btnWrapper = document.querySelector(selector);
if (btnWrapper) break;
}
btnWrapper.style.display = 'flex';
btnWrapper.style.flexWrap = 'wrap';
btnWrapper.style.gap = gapSize;
btnWrapper.style.flexDirection = flexDirection ? 'row' : 'column';
function createButton(settings) {
const btn = document.createElement('button');
btn.classList.add('custom-button');
btn.style.padding = btnPadding;
btn.style.backgroundColor = settings.color;
btn.style.color = settings.textColor;
btn.style.fontSize = textSize;
btn.style.fontWeight = fontWeight;
btn.style.border = border;
btn.style.borderRadius = borderRadius;
btn.style.fontFamily = fontFamily;
btn.style.cursor = 'pointer';
btn.style.display = 'flex';
btn.style.alignItems = 'center';
btn.style.justifyContent = 'center';
btn.style.transition = transition;
btn.textContent = settings.text;
const mediaQuery = window.matchMedia('(max-width: 639px)');
function applyMobileStyles() {
btn.style.padding = mobilePadding;
btn.style.borderRadius = mobileBorderRadius;
btn.style.fontSize = mobileTextSize;
}
function applyDesktopStyles() {
btn.style.padding = btnPadding;
btn.style.borderRadius = borderRadius;
btn.style.fontSize = textSize;
}
if (mediaQuery.matches) {
applyMobileStyles();
}
mediaQuery.addEventListener('change', (event) => {
if (event.matches) {
applyMobileStyles();
} else {
applyDesktopStyles();
}
});
btn.addEventListener('mouseover', function() {
btn.style.color = settings.hoverTextColor;
btn.style.backgroundColor = settings.hoverBgColor;
btn.style.borderColor = settings.hoverBorderColor;
});
btn.addEventListener('mouseout', function() {
btn.style.color = settings.textColor;
btn.style.backgroundColor = settings.color;
btn.style.borderColor = '#e1e1e1';
});
btn.addEventListener('click', function() {
window.location.href = settings.link;
});
return btn;
}
// Создаем и добавляем кнопки
btnWrapper.appendChild(createButton(btn1)); // Создание 1 кнопки
btnWrapper.appendChild(createButton(btn2)); // Создание 2 кнопки
});
 
Код модификации
Код модификации
Копировать код
<!-- meloddy.design - Дополнительные кнопки для карточки товара -->
<script>
    document.addEventListener('DOMContentLoaded', function() {
        // Параметры для обертки кнопок
        const flexDirection = true; // true = в строку, false = в колонку
        const gapSize = '20px'; // расстояние между кнопками
        
        // Общие параметры для кнопок
        const btnPadding = '12px 30px'; // паддинги в кнопке верх-низ / лево право
        const mobilePadding = '10px 20px'; // паддинги в кнопке на мобильных устройствах верх-низ / лево право 
        const border = '1px solid #e1e1e1'; // обводка: жирность -> целостность -> цвет
        const borderRadius = '10px'; // скругления обводки
        const mobileBorderRadius = '8px'; // скругления обводки для мобильных
        const textSize = '14px'; // размер текста
        const mobileTextSize = '12px'; // размер текста для мобильных
        const fontWeight = '500'; // жирность текста
        const fontFamily = 'Vela Sans'; // семейство шрифтов
        const transition = 'background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease';
        
        // Настройки для первой кнопки
        const btn1 = {
            link: '/',
            color: '#f8f8f8',
            textColor: '#000000',
            hoverBgColor: '#ffffff',
            hoverTextColor: '#000000',
            hoverBorderColor: '#e1e1e1',
            text: 'КНОПКА 1'
        };
        
        // Настройки для второй кнопки
        const btn2 = {
            link: '/',
            color: '#f8f8f8',
            textColor: '#000000',
            hoverBgColor: '#ffffff',
            hoverTextColor: '#000000',
            hoverBorderColor: '#e1e1e1',
            text: 'КНОПКА 2'
        };
        

        let btnWrapper = null;
        const wrapperSelectors = [
            '.t760__btn-wrapper',
            '.t762__btn-wrapper',
            '.t744__btn-wrapper'
        ];
        for (let selector of wrapperSelectors) {
            btnWrapper = document.querySelector(selector);
            if (btnWrapper) break;
        }
        btnWrapper.style.display = 'flex';
        btnWrapper.style.flexWrap = 'wrap';
        btnWrapper.style.gap = gapSize;
        btnWrapper.style.flexDirection = flexDirection ? 'row' : 'column';
        
        function createButton(settings) {
            const btn = document.createElement('button');
            btn.classList.add('custom-button');
            
            btn.style.padding = btnPadding;
            btn.style.backgroundColor = settings.color;
            btn.style.color = settings.textColor;
            btn.style.fontSize = textSize;
            btn.style.fontWeight = fontWeight;
            btn.style.border = border;
            btn.style.borderRadius = borderRadius;
            btn.style.fontFamily = fontFamily;
            btn.style.cursor = 'pointer';
            btn.style.display = 'flex';
            btn.style.alignItems = 'center';
            btn.style.justifyContent = 'center';
            btn.style.transition = transition;
            
            btn.textContent = settings.text;
            
            const mediaQuery = window.matchMedia('(max-width: 639px)');
            function applyMobileStyles() {
                btn.style.padding = mobilePadding;
                btn.style.borderRadius = mobileBorderRadius;
                btn.style.fontSize = mobileTextSize;
            }
            function applyDesktopStyles() {
                btn.style.padding = btnPadding;
                btn.style.borderRadius = borderRadius;
                btn.style.fontSize = textSize;
            }
            if (mediaQuery.matches) {
                applyMobileStyles();
            }
            mediaQuery.addEventListener('change', (event) => {
                if (event.matches) {
                    applyMobileStyles();
                } else {
                    applyDesktopStyles();
                }
            });
            btn.addEventListener('mouseover', function() {
                btn.style.color = settings.hoverTextColor;
                btn.style.backgroundColor = settings.hoverBgColor;
                btn.style.borderColor = settings.hoverBorderColor;
            });
            btn.addEventListener('mouseout', function() {
                btn.style.color = settings.textColor;
                btn.style.backgroundColor = settings.color;
                btn.style.borderColor = '#e1e1e1';
            });
            btn.addEventListener('click', function() {
                window.location.href = settings.link;
            });
            
            return btn;
        }
        
        // Создаем и добавляем кнопки
        btnWrapper.appendChild(createButton(btn1)); // Создание 1 кнопки
        btnWrapper.appendChild(createButton(btn2)); // Создание 2 кнопки
    });
</script>
Пример работы модификации
Made on
Tilda