Статья рассказывает о создании раздела с календарем и задачами с использованием библиотеки FullCalendar. Разбираются её возможности, преимущества и опыт интеграции для внутренних проектов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте форму с одним полем ввода для имени и кнопкой "Отправить". При отправке формы выполните следующие условия:
1. Если поле пустое, отобразите сообщение об ошибке под полем.
2. Если поле заполнено, отобразите сообщение "Форма успешно отправлена!".
3. Сообщение об ошибке исчезает при вводе текста.
Решение задачи
<form id="myForm">
<input type="text" id="nameInput" placeholder="Введите имя" />
<button type="submit">Отправить</button>
<p id="error" style="color: red; display: none;">Поле не должно быть пустым</p>
</form>
<p id="success" style="color: green; display: none;">Форма успешно отправлена!</p>
const form = document.getElementById('myForm');
const nameInput = document.getElementById('nameInput');
const error = document.getElementById('error');
const success = document.getElementById('success');
form.addEventListener('submit', (e) => {
e.preventDefault();
if (nameInput.value.trim() === '') {
error.style.display = 'block';
success.style.display = 'none';
} else {
error.style.display = 'none';
success.style.display = 'block';
nameInput.value = '';
}
});
nameInput.addEventListener('input', () => {
if (nameInput.value.trim() !== '') {
error.style.display = 'none';
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья раскрывает идеи и обсуждения, связанные с развитием сборки Хромиума Ultimatum. Автор стремится понять реальные запросы пользователей и обсудить востребованные функции.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Сцена с интересной реализацией анимированного скролла. Сделана на Svg, CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend-разработчик React (middle+/senior)
• JavaScript, React, TypeScript, Node.js, CI/CD (GitLab), Unit-тестирование• Уровень дохода не указан | от 3 летFullStack разработчик
• React, TypeScript, JavaScript, HTML, CSS, Node.js, API, Git• Уровень дохода не указан | от 3 летSenior Frontend Developer VUE.js
• JavaScript, Vue.js, TypeScript, адаптивная верстка, дизайн мобильных приложений, Figma, Nuxt.js, веб-разработка• от 3 000 до 4 000 $ | от 5 летPlease open Telegram to view this post
VIEW IN TELEGRAM
• «Сбер» режет косты
• Все, пора увольняться: что я поняла после работы в токсичных командах
• Чем Cloud-инженер отличается от DevOps-инженера и что между ними общего
• Правда или вымысел? Разоблачаем мифы о профессии технического писателя
• 5 видов усталости в IT… и не только
Please open Telegram to view this post
VIEW IN TELEGRAM
throttle в JavaScript и зачем он используется?Throttle — это техника ограничения частоты вызова функции до определённого интервала времени. Это полезно для обработки часто происходящих событий, таких как прокрутка или изменение размеров окна, не перегружая производительность.function throttle(func, delay) {
let lastCall = 0;
return (...args) => {
const now = Date.now();
if (now - lastCall >= delay) {
lastCall = now;
func(...args);
}
};
}
const handleScroll = throttle(() => {
console.log('Прокрутка страницы');
}, 1000);
window.addEventListener('scroll', handleScroll);🗣️ В этом примере функция handleScroll вызывается не чаще одного раза в секунду, даже если пользователь прокручивает страницу интенсивно. Throttle помогает оптимизировать производительность и уменьшить количество вызовов функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend Teсh Lead
Lead Frontend Developer
Frontend Tech Lead
Lead Frontend-разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья рассматривает случаи стандартизированного нейминга переменных и функций. Примеры сгруппированы по категориям для лучшей наглядности и помогут улучшить читаемость и согласованность кода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Технический долг копится, как грязная посуда в раковине. Кажется, что решишь его «когда-нибудь», но это «когда-нибудь» не наступает.
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend Developer
Senior Frontend Developer (Vue.JS)
Senior Frontend Engineer
Senior Next.js Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье мы подводим итоги 2024 года и делимся нашими прогнозами на 2025 год. Приводим мнение трех экспертов по ключевым трендам фронтенд‑разработки и фреймворков, которые будут актуальными в следующем году.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте поле для ввода пароля и кнопку "Показать/Скрыть". При нажатии на кнопку символы пароля должны переключаться между скрытым (type="password") и видимым (type="text") состоянием.
Требования:
• Кнопка переключает тип поля ввода пароля между "password" и "text".• Текст кнопки меняется в зависимости от текущего состояния видимости пароля.Решение задачи
<input type="password" id="password" placeholder="Введите пароль">
<button id="toggleBtn">Показать</button>
const password = document.getElementById('password');
const toggleBtn = document.getElementById('toggleBtn');
toggleBtn.addEventListener('click', () => {
const isHidden = password.type === 'password';
password.type = isHidden ? 'text' : 'password';
toggleBtn.textContent = isHidden ? 'Скрыть' : 'Показать';
});
Please open Telegram to view this post
VIEW IN TELEGRAM
• Как устроен Next.js: разбираем ключевые особенности фреймворка на примере небольшого pet-проекта
• Всего несколько строк CSS для плавных переходов между страницами
• 5 полезных фреймворков и библиотек для начинающего фронтенд-разработчика на конец 2024 года. Часть 2
• Проектная работа «Оно тебе надо» от Яндекс практикума
• Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: «Какие знаешь псевдо-классы?»
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Статья знакомит с фреймворком Next.js, рекомендованным командой React для новых проектов. На примере pet-проекта рассматриваются базовые возможности и преимущества использования Next.js.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте кнопку, при нажатии на которую появляется анимация загрузочного индикатора (спиннера) на 3 секунды. После завершения загрузки спиннер исчезает, а на кнопке отображается текст "Готово!".
Решение задачи
<button id="loadButton">Начать загрузку</button>
<div id="spinner" class="spinner" style="display: none;"></div>
button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
.spinner {
margin-top: 10px;
width: 30px;
height: 30px;
border: 4px solid#ccc ;
border-top: 4px solid#007bff ;
border-radius: 50%;
animation: spin 1s linear infinite;
}@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
const button = document.getElementById('loadButton');
const spinner = document.getElementById('spinner');
button.addEventListener('click', () => {
button.disabled = true;
button.textContent = 'Загрузка...';
spinner.style.display = 'block';
setTimeout(() => {
button.textContent = 'Готово!';
spinner.style.display = 'none';
button.disabled = false;
}, 3000);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Начинающий Typescript Fullstack разработчик (NestJS, React)
Frontend-разработчик
Frontend-разработчик React, Canvas, WebGL, Pixi.js, Skia
JavaScript-разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Кнопка с вылетающими конфетти при нажатии. Сделана на CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Event delegation — это техника, позволяющая обрабатывать события на родительском элементе вместо установки обработчиков на каждый дочерний элемент. Это особенно полезно, если дочерние элементы динамически добавляются или их много.// Родительский элемент
const parent = document.querySelector('#parent');
// Используем делегирование
parent.addEventListener('click', (event) => {
if (event.target.matches('.child')) {
console.log(`Клик по элементу: ${event.target.textContent}`);
}
});
// Динамическое добавление дочерних элементов
const newChild = document.createElement('div');
newChild.className = 'child';
newChild.textContent = 'Новый элемент';
parent.appendChild(newChild);
🗣️ В этом примере обработчик событий на родительском элементе обрабатывает клики по дочерним элементам, включая добавленные динамически. Это упрощает код и повышает производительность.
Please open Telegram to view this post
VIEW IN TELEGRAM
Middle Frontend Developer
• React, JavaScript, TypeScript, Webpack, Git, Jira, Confluence• Уровень дохода не указан | 1–3 годаReact Native Developer
• React Native, JavaScript, TypeScript, Redux, Git, CI/CD, GraphQL, REST API• до 300 000 ₽ на руки | 3–6 летФронтенд-разработчик (Vue.js / React)
• JavaScript, TypeScript, Vue.js, React, Sass, Less, Git, Vite, Docker, CI/CD• от 190 000 ₽ на руки | 3–6 летPlease open Telegram to view this post
VIEW IN TELEGRAM