Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Начните с маленькой подводной лодки: устанавливайте бомбы, избавляйтесь от врагов и старайтесь не попадаться на глаза своим плавучим врагам. Вас ждет еще несколько игровых вселенных, много уникальных сюжетов и интересных загадок.

Пикабомбер

Аркады, Пиксельная, 2D

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Javascript + Web

С этим тегом используют

Программирование IT HTML IT юмор Программист Frontend CSS Web-программирование Сайт Веб-разработка Дизайн Все
141 пост сначала свежее
33
STINGRAY.DEVELOP
STINGRAY.DEVELOP
4 года назад

Во все тяжкие: Веб-разработчик с нуля. 15 месяцев⁠⁠

Во все тяжкие: Веб-разработчик с нуля. 15 месяцев IT, Программирование, Javascript, Веб-разработка, Frontend, Web, Длиннопост, Фриланс

Ничего из ничего не возникает.(с) Липот Сонди


Цель — Senior Frontend Developer.

Язык: JavaScript / TypeScript.

Возраст: 29 лет.

Работа (настоящее время): Junior Frontend Developer в компании "Корус Консалтинг СНГ".

Локация: г. Санкт-Петербург.


Привет! Уже заметил? Да, в Корусе меня уже не найти. Опять мне не сидится на месте и не работается? Выходит, что так. После предыдущего поста, где я высказал недовольство тем, что мне не подняли зарплату после обучения, мне её таки повысили. Немного, но подняли! ( Да, блог читают коллеги из Коруса).  Так, почему я всё равно ушел из дочки Сбербанка?


Дело не в зарплате и не в том,что в Корусе что-то мне не нравилось. После сотрудничества с этой компанией у меня остались хорошие впечатления. Во всяком случае я работал с замечательными людьми. И оставшись я там, вероятно я бы быстро развивался и рос как разработчик(...но это же просто и скучно, обязательно нужен драйв).


На самом деле, я решил перебраться в другую страну, а с этим связано много вопросов, которые необходимо решить до переезда. По вечерам и ночам времени абсолютно нет, поэтому кто скажет, что можно работать днем, а дела делать после работы - у меня так не получится.


Что за страна? Поедем в Турцию сначала поживем, а там поглядим. В общем-то, я давно хотел работать на удаленке из теплой страны. Удаленная работа - это одна из задач, которую я в том числе преследовал, когда выбирал сферу для профессиональной деятельности больше года назад. Что буду делать в Турции?


Поглядим, может устроюсь на удаленку в компанию, но есть мысли уйти во фриланс, сейчас изучаю площадки и особенности работы в этой плоскости и что там вообще востребовано. Есть среди моих подписчиков люди, занимающиеся фрилансом? Может советов дадите? Про особенности веб-разработки расскажите? Я сейчас не про разработку сайтов на wordpress и тильда, а про задачи связанные с моим стеком(React, Redux, TS) или около-моим(Vue, React Native).

Господа и дамы фрилансеры, можете что-то посоветовать? Буду благодарен.


Так как у меня высвободилось время, то в свободное время я начал изучать(или уже изучил):


1. Луис Атенсио - Функциональное программирование(толковая книжка);

2. Филипп Робертс: Что за чертовщина такая event loop? (пересматривал и закреплял, лучший доклад по этой теме);

3. Генераторы в JS;

4. Итераторы в JS;

5. Наконец-то я прочитал всю доку по React.js. Конечно возвращаться еще буду, но зато знаю где и что можно быстро найти;


Есть еще у меня мысли кое-какие, но то больше некие философские концепции и имеют больше отношение в целом к жизни, а не к конкретно программированию(но применять можно и в программировании).

Интересно было бы об этом читать?(могу сделать отдельную "рубрику" и иногда пилить посты на иные темы).


Контакты: Instagram, Github.

Показать полностью
[моё] IT Программирование Javascript Веб-разработка Frontend Web Длиннопост Фриланс
37
13
webvkube
4 года назад

Генератор фраз в стилистике киберпанка⁠⁠

Привет! Я тут в свободное время небольшие  тридэшные приложения пишу для web.


Все видели логотип игры cyberpunk 2077?  А что если сделать сервис, который сможет сгенерировать такой логотип только со своим текстом, чтобы без сложностей, просто написал фразу,  сохранил в гифку и все. И чтобы можно было пользоваться онлайн из браузера.  Ну неделя бессонных ночей и готово. Управление там довольно простое, всего четыре кнопки и пара бегунков.

Это первая версия. Поддерживается только кириллица. Дальше добавлю и латиницу с цифрами.

Приложение бесплатное.

Пишите ваши пожелания, что добавить и улучшить. Ну и результаты можно в комментарии выкладывать.

Ссылка http://webvkube.ru/examples/18/

Генератор фраз в стилистике киберпанка Threejs, Cyberpunk 2077, 3D, Web, Javascript, Сервис, Гифка
[моё] Threejs Cyberpunk 2077 3D Web Javascript Сервис Гифка
12
1
DELETED
4 года назад

Примитивный аккордеон⁠⁠

Рассмотрим два варианта создания аккордеона на примере списка вопросов и ответов. Сделаем это через:

— JavaScript;

— Тег Details;


JavaScript

Создадим простую разметку:

<button class="question">What is question?</button>
 <div class="answer">
  Lorem ipsum dolor, sit amet consectetur adipisicing elit. Dolorem dicta blanditiis eum dolorum sit voluptatum impedit eius similique quasi obcaecati! Mollitia reprehenderit magni ex. Eaque modi corrupti placeat labore possimus.
</div>
И сразу же добавим стили:
.answer {
 height: 0;
 overflow: hidden;
}

.is-active + .answer {
 height: auto;
}

Как все будет работать:

— В кнопке с классом question храним сам вопрос;

— В div с классом answer храним ответ, задаем ему нулевую высоту;

— При нажатии на кнопку присваиваем ей класс is-active;

— Раскрываем answer через соседний селектор.


Зададим добавление класса is-active через JavaScript:

// Находим кнопку с вопросом
const question = document.querySelector('.question');

// Добавляем слушатель на клик
question.addEventListener('click', ({ target }) => {
 // Меняем состояние кнопки
 target.classList.toggle('is-active');
});

Все, пара строк кода и аккордеон готов?


С одной стороны да, но данный вариант имеет один недостаток — ответ появляется «резко», без плавного раскрытия.


Связано это с тем, что height: auto; нельзя анимировать через transition, необходимо знать точное значение.

Что с этим делать — обсудим в следующей статье, а пока можете ознакомиться с полной версией кода в codepen.

Тег Details

Этот способ еще проще предыдущего:

<details>
 <summary>How to create accordion without JavaScript?</summary>
 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Facilis id recusandae tempore nam placeat ratione accusantium maiores nobis velit, incidunt, hic, omnis dolorem possimus. Hic porro tenetur fugiat blanditiis iste.
</details>

Все, копипасть и в продакшен?

Есть ньюансы.

Во-первых, details имеет тот же недостаток, что и первый вариант — нельзя анимировать активное состояние аккордеона.

Во-вторых, отсутствует поддержка IE.


Во всех остальных случаях можно смело использовать, а если вам нравится как я копирую документацию, то можете еще раз сходить в codepen :)

Показать полностью
[моё] Аккордеон Спойлер Frontend Web IT Javascript HTML Текст
17
IPdoor
4 года назад

И ТУТ ОНИ⁠⁠

И ТУТ ОНИ
[моё] Javascript Программирование IT Frontend IT юмор Юмор Web Web-программирование
0
43
STINGRAY.DEVELOP
STINGRAY.DEVELOP
5 лет назад

Во все тяжкие: Веб-разработчик с нуля. 14 месяцев⁠⁠

Во все тяжкие: Веб-разработчик с нуля. 14 месяцев IT, Программирование, Карьера, Javascript, Веб-разработка, Frontend, Web, Длиннопост

Цель — Senior Frontend Developer.

Язык: JavaScript / TypeScript.

Возраст: 29 лет.

Работа (настоящее время): Junior Frontend Developer в компании "Корус Консалтинг СНГ".

Локация: г. Санкт-Петербург.


Привет! Как дела? Я смотрю тебя возмутил мой предыдущий пост. Ну да ладно, не серчай. Просто на самом деле не было никаких изменений, никаких новостей. Новости должны были быть на следующий день, но перевирать я не хотел.


Какие новости должны были быть на следующий день? Я к тому времени закончил 10-ти дневную стажировку в боевом проекте компании Корус, прошел аттестацию и ждал ответа -  берут меня в компанию или не берут.

Так вот, как вы уже могли заметить, меня взяли и я остался в этом же проекте, где проходил стажировку. Но могли и не взять фронтом, а например верстальщиком, как одного парня, который вместе со мною проходил учебу. По итогам аттестации он не потянул на фронта.


Я уже месяц работаю над довольно непростым и большим проектом. Стек: TypeScript, React на хуках, Redux, Saga. Первое время я вешался, так как мы на учебе мало времени уделяли реакту и сопутствующим технологиям. Еще и typescript... Я смотрел на папки в проекте, потом на то, что внутри и мне хотелось плакать. Плакать от того, что я вообще не понимал что происходит. Реакт вроде понятен, TypeScript тоже. А в целом - ничего не понятно. Десятки файлов, все раскидано, десятки импортов, экспортов. Вспоминал проект американской компании, о котором писал раньше. В общем весело.


Сейчас уже в структуре разобрался, все понятно, что за что отвечает, но все равно некоторые таски еще делаю долго из за сложности технологий. Да, сложно. Сложно еще от того, что я не успел поработать на обычном реакте без Redux и Saga. А тут сразу всё это. Ну лады, поглядим.


В нашей команде 15 человек, есть все. От аналитиков до датабэйсеров или как там их еще называют. Три фронтенд разработчика, в том числе и я. Каждый день код ревью, два созвона(да, работаю удаленно), каждый день старший разработчик подсказывает мне бест практис и просто указывает на ошибки. Игорь, золотой ты человек! Мне бы твоего терпения и уровня программирования!


Сравнивая мою работу в Автоконтиненте и работу здесь в Корусе(удаленно), хотя можно пойти и в офис - это просто две разные вещи, как небо и земля. Поэтому да, компания компании рознь. Уровень проектов разный, уровень заинтересованности в проекте разный, в целом уровень организации работы.


Единственное, что на данный момент плохо и из-за чего у меня возникают определенные мысли - это заработная плата в Корусе. Уровень зп и сложность проекта ну совсем не коррелируются. Так как обещали одно после прохождения стажировки, а по факту другое, постоянно кормят завтраками. И с каждым днем желания работать и ломать голову над такими задачками за зарплату стажера(продавца в пятерочке) не хочется. В целом глядя на hh.ru уровень зарплат фронтов в Корусе довольно не хилый. Но меня как джуна пока это не коснулось. Делаем выводы. Не буду забегать в перед, будут изменения - обязательно сообщу. Но намёк вы поняли.


А что кроме работы? К счастью или к несчастью, но у меня стало меньше времени. У меня нет как раньше свободных вечеров для прокачки доп. навыков и осваивания доп. технологий. Параллельно я ставлю другой навык, это новый проект, если можно так сказать( но его не будет ни на пикабу, ни где-либо еще). Тот проект направлен не на финансовую составляющую, как этот, всё же по большей части, о котором вы читаете. Да, у меня в эталоне многофункциональность. Я считаю, что человек должен много чего уметь делать. Но и осевой навык тоже должен быть.

Поэтому прокачка в программировании замедлилась, могла бы во много раз быть мощнее. Но тот проект в приоритете. Программирование все же для меня ремесло, не больше.


Есть у меня еще кое-какие наметки насчет работы в программировании, но не только в качестве разработчика. Но для этого нужны ресурсы, которых пока нет. Так, что об этом чуть позже.


Вот такие дела. Как у вас дела? Кто уже устроился на работу и стал миддлом, пока я тяну кота за яйца и выбираюсь из "трясины джунства"?


До встречи через месяц!

Артем OWIII.


Контакты: Instagram, Github.

Репозиторий с тестовыми заданиями для frontend разработчика.

Показать полностью
[моё] IT Программирование Карьера Javascript Веб-разработка Frontend Web Длиннопост
26
8
DELETED
5 лет назад

Resource Override⁠⁠

В этой заметке я попытаюсь сделать краткий обзор браузерного расширения Resource Override.


Для чего предназначен?

Подменять стили указанного сайта своими.


Зачем?

Дебаг css и js на боевом сайте.


Установка

Переходим по ссылке и жмем на кнопку установить.


Подробнее

Resource Override CSS, Javascript, Frontend, Web, Web-программирование, IT, Верстка, Видео, Длиннопост

На странице настроек доступы четыре действия:

— Подменить файл другим через URL;

— Подменить файл другим через файл;

— Вставить свой файл;

— Подменить заголовки.


Последним я не пользовался, поэтому расскажу о первых трех.



Через URL

Допустим вы разрабатываете на локалке. У вас настроен сборщик, который поднимает сервер.

В итоге URL выглядит как-то так — localhost:3000


Стили компилируются в один bundle — styles.min.css, который также используется на боевом сайте. Это значит, что мы можем посмотреть, как будут выглядеть новые стили на проде.

Для этого достаточно добавить в группу новое правило: URL → URL


В поле from указываем на каком сайте мы хотим подменить стили, а в to — местоположение наших стилей:

https://site.com/styles.min.css → localhost:3000/styles.min.css

Через файл

Аналогично предыдущему способу, только вместо locahost:3000/styles.min.css необходимо вставить код во встроенный текстовый редактор расширения. Это удобно только для маленьких файлов.


Вставить свой файл

Уже без привязки к URL.

Если лень писать Chrome расширения — можно просто вставить кусок JS кода.


Если это вас заинтересовало и вы хотите узнать о расширении поподробнее, то советую посмотреть видео Kyle Paulsen:

Посты на эти и другие темы публикую в канале: https://t.me/filimonovvadim

И в группе вк: https://vk.com/filimonovvadim

Показать полностью 1 1
[моё] CSS Javascript Frontend Web Web-программирование IT Верстка Видео Длиннопост
0
DELETED
5 лет назад

Отправка формы без перезагрузки страницы / HTML & JS⁠⁠

HTML

Создаем форму:

<form action=”https://private-c4cefc-codepenvf.apiary-mock.com/sendform">
 <input name=”message” placeholder=”Message” required>
 <button>Send</button>
</form>

Я использую сервис apiary чтобы сформировать ответ от сервера в формате JSON:

{
 "success": "true",
 "message": "The form has been sent!"
}

JavaScript

Находим все, что нам нужно и добавляем слушатель:

let form;
let action;

function findElements() {
 form = document.querySelector('form');
 ({ action } = form);
}

function subscribe() {
 form.addEventListener('submit', onSubmit);
}

function init() {
 findElements();
 subscribe();
}

init();

При отправке формы:

function onSubmit(event) {
 event.preventDefault();
 const { currentTarget } = event;
 sendForm(currentTarget)
  .then(response => onSuccess(response, currentTarget))
  .catch(onError);
}

— Отключаем стандартное поведение через preventDefault;

— Отправляем форму;

— При успехе вызываем функцию onSuccess;

— Иначе onError.


Отправляем форму

В основе лежит fetch:

function collectData(currentForm) {
 const data = new FormData(currentForm);
 return data;
}

function setOptions(currentForm) {
 return {
  method: 'post',
  body: collectData(currentForm),
 };
}

function sendForm(currentForm) {
 return fetch(action, setOptions(currentForm));
}

Первый аргумент — url, по которому нужно обратиться;

Второй — объект, который с данными.


При успехе вызываем функцию onSuccess

function showMessage(data) {
 alert(data.message);
}

function onSuccess(response) {
 return response.json().then(showMessage);
}

Fetch возвращает Promise, поэтому сначала получаем json, потом вызываем функцию showMessage.

Дабы упростить пример — я вывожу сообщение в alert.


При ошибке вызываем функцию onError

function onError(data) {
 console.error(data);
}

В onError, вызванный через catch, уже попадет аргумент с информацией об ошибке.


Полный код

let form;
let action;

function findElements() {
 form = document.querySelector('form');
 ({ action } = form);
}

function showMessage(data) {
 alert(data.message);
}

function onSuccess(response) {
 return response.json().then(showMessage);
}

function onError(data) {
 console.error(data);
}

function collectData(currentForm) {
 const data = new FormData(currentForm);
 return data;
}

function setOptions(currentForm) {
 return {
  method: 'post',
  body: collectData(currentForm),
 };
}

function sendForm(currentForm) {
 return fetch(action, setOptions(currentForm));
}

function onSubmit(event) {
 event.preventDefault();
 const { currentTarget } = event;
 sendForm(currentTarget)
  .then(response => onSuccess(response, currentTarget))
  .catch(onError);
}

function subscribe() {
 form.addEventListener('submit', onSubmit);
}

function init() {
 findElements();
 subscribe();
}

init();

В удобочитаем виде — на codepen.


Посты на эти и другие темы публикую в канале: https://t.me/filimonovvadim

Показать полностью
[моё] Frontend AJAX HTML Javascript Web Web-программирование Длиннопост Текст
13
DELETED
5 лет назад

Валидация Email на Javascript⁠⁠

Задача:

Есть текстовое поле, куда пользователь должен вводить E-mail.

- Если поле проходит валидацию — оно должно иметь зеленую подсветку;

- Если нет — красную.


Первым делом добавляем input в HTML. Здесь все просто:

<input type="email" placeholder="E-mail">

Для простоты восприятия предположим, что больше на странице ничего нет, поэтому не станем добавлять лишние атрибуты.


Так как подсветка должна меняться в реальном времени добавим «слушатель» на input:

const INPUT = document.querySelector('input');
INPUT.addEventListener('input', updateInput);

Функция updateInput будет менять цвет css-свойства border на зеленый, если введенный в input текст валиден, или на красный — если нет.


const INPUT = document.querySelector('input');
function updateInput() {
if (validateEmail(INPUT.value)) INPUT.style.borderColor = 'green';
else INPUT.style.borderColor = 'red';
}

INPUT.addEventListener('input', updateInput);

Функция validateEmail будет сравнивать введенное пользователем значение с регулярным выражением. В успешном случае функция вернет true, иначе — false.

const EMAIL_REGEXP = /^(([^<>()[\].,;:\s@"]+(\.[^<>()[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,})$/iu;
const INPUT = document.querySelector('input');
function validateEmail(value) {
return EMAIL_REGEXP.test(value);
}

function updateInput() {
if (validateEmail(INPUT.value)) INPUT.style.borderColor = 'green';
else INPUT.style.borderColor = 'red';
}
INPUT.addEventListener('input', updateInput);

Вот и все! Скрипт готов. Его работу вы можете проверить в моем Codepen.

Показать полностью
[моё] Frontend Javascript Электронная почта Web Текст
18
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии