Code Ready | Frontend
21.9K subscribers
876 photos
386 videos
17 files
579 links
Авторский канал по Frontend разработке.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

РКН: https://clck.ru/3NJCKs

Реклама на бирже: https://telega.in/c/code_ready
Download Telegram
Дебаунс событий для плавного интерфейса!

Частые события resize или input могут перегружать страницу и тормозить анимации. Решение — дебаунс с правильными опциями.

Проблемный код:
window.addEventListener('resize', () => {
console.log('Width:', window.innerWidth);
updateLayout();
});


Проблема: при быстром resize — десятки вызовов в секунду.

Улучшенный дебаунсер:
function debounce(fn, delay = 200) {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), delay);
};
}


Применяем с cleanup:
const debouncedResize = debounce(() => {
console.log('Debounced width:', window.innerWidth);
}, 300);

window.addEventListener('resize', debouncedResize);


🔥 В следующей части рассмотрим почему для scroll дебаунс не работает и как throttle решает эту проблему для плавных анимаций!

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍9🔥8
📱 Emoji Reaction Bar как в соцсетях!

Привет! В этом гайде создаём упрощенную интерактивную панель эмодзи-реакций с счетчиками, как в социальных сетях.

Ключевые моменты:
HTML: простая структура с эмодзи-кнопками и счетчиками.

CSS: минимальные стили с hover-эффектами и переходами.

JS: базовая логика кликов и подсчета реакций без сложных анимаций.


Подходит для социальных платформ, интерактивных интерфейсов, блогов и UI с пользовательскими реакциями.

📣 Code Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥106
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ HTML Academy — идеальный старт для тех, кто хочет стать фронтенд-разработчиком!

Интерактивные курсы по HTML, CSS, JavaScript и React, от простых тренажёров до профессиональных программ. Отлично подходит для новичков и тех, кто хочет прокачать свои навыки.

📌 Оставляю ссылочку: htmlacademy.ru

📣 Code Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍98👎1
📱 Разбираем методы работы с генераторами!

В этой шпаргалке собраны основные приёмы для создания генераторов, возврата значений, перебора, делегирования и управления выполнением. Они применяются при работе с ленивыми коллекциями, потоками данных и сложными итерациями в приложениях.

📣 Code Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥115🤝4
👍7🔥64
Что же выведет консоль?
Anonymous Quiz
46%
A
36%
B
11%
C
7%
D
🔥169👍9🤝7😁2
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Можно ли визуально показать, что на ссылку или кнопку прямо сейчас жмут?

Псевдокласс :active позволяет задать стили для элемента, с которым происходит взаимодействие прямо сейчас.

Покажу примеры:
• color — меняет цвет текста;

• background — подсвечивает фон;

• transform — делает анимацию «прожатия»;

• box-shadow — добавляет эффект клика.


Фишка в том, что :active работает только во время удержания. Отпустил - элемент возвращается к обычному стилю.

📣 Code Ready | #свойсво
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍8🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Metanit — это подробный русскоязычный учебник по JavaScript с объяснениями и примерами. Подходит как для новичков, так и для тех, кто хочет углубиться в тонкости языка.

📌 Оставляю ссылочку: metanit.com

📣 Code Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥85😁3👎2
Throttle vs Debounce: выбираем инструмент!

Функция срабатывает только после остановки прокрутки на 300ms. Пользователь видит скачкообразные обновления интерфейса:
const debouncedScroll = debounce(() => {
console.log('Scroll handled');
}, 300);

window.addEventListener('scroll', debouncedScroll);


Решение — throttle:
function throttle(fn, limit = 16) {
let inThrottle;
return (...args) => {
if (!inThrottle) {
fn(...args);
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}


Функция выполняется максимум раз в 16ms, обеспечивая плавные 60 FPS без перегрузки браузера.
const throttledScroll = throttle(() => {
console.log('Scroll handled');
}, 16); // 16ms = 60 FPS

window.addEventListener('scroll', throttledScroll, { passive: true });


🔥 Поэтому, Throttle — для частых действий (scroll, resize). Debounce — для финального результата (поиск, валидация).

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍167🔥7🤝3
😁36👍84
📱 Кнопка с анимацией загрузки!

В этом гайде создаём кнопку, которая превращается в индикатор загрузки при нажатии, делая интерфейс интерактивным и отзывчивым.

Ключевые моменты:
• HTML: простая структура кнопки с текстом и элементом лоадера.

• CSS: плавные переходы, позиционирование лоадера и анимация вращения.

• JS: добавление/удаление класса loading и блокировка кнопки на время «загрузки».


Подходит для форм, отправки данных, интерактивных интерфейсов и UX-дизайна.

📣 Code Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍218🤝7🔥3