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

Пикабу Игры +1000 бесплатных онлайн игр

Классический арканоид для любителей ретро-игр. Защитите космический корабль с Печенькой (и не только) на борту, проходя уровни в арканоиде.

Арканоид Пикабу

Арканоид, Аркады, Веселая

Играть
Герои Войны - микс стратегии и РПГ. Собери лучшую армию и победи всех врагов. В игре 7 различных режимов - как для любителей PvE, так и PvP.

Герои Войны

Стратегии, Мидкорные, Экшены

Играть
Веселая аркада с Печенькой для новогоднего настроения. Объезжайте препятствия, а подарки, варежки, конфеты и прочие приятности не объезжайте: они помогут набрать очки и установить новый рекорд.

Сноуборд

Спорт, Аркады, На ловкость

Играть
Стреляйте в преследующих вас врагов!
Оторвитесь от погони, ваш верный АК47 в этом поможет!
Огромный выбор оружия
Миниган, Арбалет, Стационарная пушка, Пулемет
Уничтожайте мотоциклы, квадроциклы, гоночные автомобили, вертолеты
Реалистичное оружие и машины

Погоня на Дороге: Шутер Реалистичное Оружие

Экшены, Аркады, Шутер

Играть
Archer Ragdoll Masters — экшн-игра со стрельбой из лука стикменом с физикой тряпичной куклы.

Archer Ragdoll Masters

Аркады, Гиперказуальные, 2D

Играть

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

  • Oskanov Oskanov 8 постов
  • AlexKud AlexKud 26 постов
  • StariiZoldatt StariiZoldatt 3 поста
Посмотреть весь топ

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

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

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

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

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

Учим HTML

966 постов сначала свежее
deh4567
deh4567
4 года назад

Использование Google Spreadsheet как JSON бэкенд⁠⁠

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

Например, ты пишешь простой блог и тебе совсем не хочется строить бэкенд, дабы записывать, редактировать и хранить там посты, но ты хочешь удобно собирать эти данные как JSON — Google Drive поможет тебе с этим.


Ты создал таблицу и потом ты можешь опубликовать этот документ в веб. Для этого выбери «Файл» > «Опубликовать в интернете...». В нижней части диалога ты можешь увидеть ссылку к данным, но он дает нам доступ только к HTML


Скопируй все, после key= ( например — 0AtMEoZDi5-pedElCS1lrVnp0Yk1vbFdPaUlOc3F3a2c) и подставь это в URL: spreadsheets.google.com/feeds/list/PUT-KEY-HERE/od6/p... вставить вместо "PUT-KEY-HERE".


Ты также можешь получить данные как чистый JSON (но тебе будет нужно пропустить это сначала через CORS прокси, например cors.io) по ссылке: https://spreadsheets.google.com/feeds/cells/PUT-KEY-HERE/1/p...

Теперь в своем веб приложении ты можешь получить данные и использовать их как захочешь.


P.s Если тебе нравится it, и ты полностью хочешь погрузиться в этот мир, то советую свой Telegram канал: t.me/AlphaCodeJS и Instagram: @alpha.code.js можно увидеть обзоры книг по программированию/Юмор/ и много других новостей из мира it.
Использование Google Spreadsheet как JSON бэкенд Программирование, Web, IT, Разработчики, HTML, Javascript
Показать полностью 1
Программирование Web IT Разработчики HTML Javascript
4
deh4567
deh4567
4 года назад

Что такое Ember.js?⁠⁠

Ember.js — зрелый фронтенд фреймворк, получивший много внимания в последнее время.

Ember.js вобрал в себя множество современных JavaScript концепций и технологий. Вот их неполный список:

●Транспайлер Babel для полноценной поддержки ES2015 синтаксиса.

●Поддержка юнит, интеграционного и приемочного тестирований с помощью Testem и QUnit.

●Brocolli.js для сборки ассетов.

●Поддержка live-reload для сокращения отклика во время разработки.

●Шаблонизация с использованием Handlebars.

●Навигация в любую часть приложения благодаря

системе роутинга.


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


Для работы с Ember.js предполагается, что у вас установлены свежие версии Node.js и npm.

Также стоит упомянуть, что Ember — исключительно фронтенд фреймворк. Есть множество способов взаимодействия с бэкендом на ваш выбор, но сам бэкенд никак не управляется Ember.

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

Что такое Ember.js? Программирование, Web, IT, Разработчики, HTML, Javascript
Показать полностью 1
Программирование Web IT Разработчики HTML Javascript
7
1299
xavier77
4 года назад

Веб-разработчики достигнут Нирваны⁠⁠

Веб-разработчики достигнут Нирваны
Веб-разработка Разработчики HTML CSS Программирование Программист Web-программирование IT юмор Internet Explorer 2021 Microsoft
157
Rewaqrt
Rewaqrt
4 года назад

Xsd2html⁠⁠

Здравствуйте, скажите как распарсить xsd чтобы получить из него модель dom состоящую из label/input на js?

[моё] Программирование HTML Dom Javascript Текст
16
4
DELETED
4 года назад

Быстрый хостинг проекта / surge.sh⁠⁠

Вот ссылка:

https://surge.sh/


Вот видео:

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


surge — веб сервис, который позволяет опубликовать frontend приложение буквально двумя командами. Он будет вам полезен если вам нужно временно опубликовать проект в интернете.


А сейчас я начну «переписывать» документацию.

Установка

npm install --global surge

Запуск

surge


Подготовка к деплою

Итак, у нас есть проект

Быстрый хостинг проекта / surge.sh Web, Frontend, HTML, CSS, Хостинг, Видео, Длиннопост

Переходим в терминал и запускаем surge

surge

Деплой

После регистрации подверждаем путь к проекту, указываем желанный домен и жмем enter.

Быстрый хостинг проекта / surge.sh Web, Frontend, HTML, CSS, Хостинг, Видео, Длиннопост
Быстрый хостинг проекта / surge.sh Web, Frontend, HTML, CSS, Хостинг, Видео, Длиннопост

Готово, вы в интернете!


Целью данной статьи было не научить чему-то, а показать, что такой сервис в принципе существует и как просто с ним работать.


Если он вас заинтересовал и вы хотите поближе с ним познакомиться — у него достаточно хорошая документация.

Показать полностью 3
Web Frontend HTML CSS Хостинг Видео Длиннопост
3
9
etroynov
etroynov
4 года назад
Лига Разработчиков Видеоигр

Разработка игры на phaserjs - 11: счётчик очков⁠⁠

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Добрый день, уважаемые читатели.

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

Подготовка к работе

для работы над проектом вам понадобится настроенный phaserjs и установленный nodejs. Все необходимые файлы доступны по ссылке.

Реализация счётчика

Для этого мы будем использовать функционал работы с текстом встроенный в phaserjs. Для этого мы объявим две переменные, одна будет содержать текущий счёт, а вторая объект который позволяет работать с текстом:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Для переменной scoreText мы устанавливаем значение в функции create:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Где:

- 16x16 - это координаты на которых будет располагаться счётчик ( отсчёт идет от левого верхнего угла );

- 'score: 0 ' - начальное значение счётчика;

{ fontSize: '32px', fill: '000' } - объект который устанавливает размер и цвет счётчика, если не устанавливать эти параметры по умолчанию phaserjs будет использовать шрифт Courier;

Далее нам нужно изменить функцию collectStar, мы добавим в неё код который будет повышать значение счётчика каждый раз когда мы поднимаем звезду:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Таким образом каждая поднятая звезда будет прибавлять к нашему счётчику 10 очков:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост
Показать полностью 5
[моё] Gamedev Typescript Javascript HTML Холст Phaser Длиннопост
3
5
DELETED
4 года назад

Аккордеон на чистом JS⁠⁠

Давайте разберемся как сделать аккордеон на ванильном JavaScript.


HTML

<dl>
 <dt class="question js-accordion">
  <button class="question__trigger" type="button">First Question?
 </button>
 </dt>
 <dd class="answer">
  <div>
   Lorem ipsum dolor sit amet consectetur adipisicing elit. Id, itaque quisquam? Quia cum alias in, beatae soluta dicta fuga corrupti magni? Alias minus nostrum qui at corporis, magni optio ipsam!
  </div>
 </dd>
 <dt class="question js-accordion">
  <button class="question__trigger" type="button">Second Question?</button>
 </dt>
 <dd class="answer">
  <div class="answer__content">
   Lorem ipsum dolor sit amet consectetur adipisicing elit. Id, itaque quisquam? Quia cum alias in, beatae soluta dicta fuga corrupti magni? Alias minus nostrum qui at corporis, magni optio ipsam!
  </div>
 </dd>
</dl>
Что сразу бросается в глаза, так это теги dl, dt, dd. Почему нельзя просто везде использовать div?

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


Разберем по частям:

<dt class="question js-accordion">
 <button class="question__trigger" type="button">First Question?
 </button>
</dt>

В dt помещаем вопрос, но для чего оборачивать его в кнопку? Опять семантика: когда пользователь кликает на элемент — что-то должно произойти, для этого необходимо использовать button.

Вторая причина — доступность через клавиатуру: на аккордеон можно попасть через tab и раскрыть через пробел.

<dd class="answer">
 <div>
  Lorem ipsum dolor sit amet consectetur adipisicing elit. Id, itaque quisquam? Quia cum alias in, beatae soluta dicta fuga corrupti magni? Alias minus nostrum qui at corporis, magni optio ipsam!
 </div>
</dd>

В dd кладем ответ, обернутый в дополнительный div?

Дело в том, что для того чтобы анимировать «раскрытие» аккордеона, необходимо знать высоту ответа.

.answer {
 overflow: hidden;
 height: 0;
 transition: height 0.5s;
}

В неактивном состоянии тег answer имеет нулевую высоту, поэтому мы помещаем в него дополнительный div, размер которого мы и будем измерять.

Как только аккордеон будет раскрыт — мы присвоим answer ранее измеренную высоту.

JavaScript

Найдем все аккордеоны на странице и инициализируем их:

const elements = [...document.querySelectorAll('.js-accordion')];
elements.forEach(accordion);

Воспользуемся замыканием:

function accordion(element) {
 // объект, в котором будем хранить всю необходимую информацию
 const instance = {};
 function init() {
  // найдем вопрос и ответ
  findElements(instance, element);
  // измерим высоту ответа
  measureHeight(instance);
  // добавим логику нажатия на кнопку
  subscribe(instance);
 }
 init();
}

findElements

function findElements(object, element) {
 const instance = object;
 // element - это "вопрос", по которому происходит нажатие
 instance.element = element;
 // target - это "ответ", который должен "раскрываться"
 instance.target = element.nextElementSibling;
}
Если вспомнить разметку — ответ всегда идет следом за вопросом, поэтому мы и используем свойство nextElementSibling.


measureHeight

function measureHeight(object) {
 const instance = object;
 // вычисляем высоту ответа
 instance.height = object.target.firstElementChild.clientHeight;
}
В то время, как target имеет нулевую высоту, у его потомка размер остался тем же. Этот самый размер мы и сохраняем.subscribe

Аккордеон на чистом JS Аккордеон, Javascript, Frontend, Web, IT, HTML, Программирование, Web-программирование, Гифка, Длиннопост

У answer высота — 0, а у answer__content — нет

subscribe

function subscribe(instance) {
 instance.element.addEventListener('click', (event) => {
  // отменяем "действие по умолчанию"
  event.preventDefault();
  // меняем состояние аккордеона
  changeElementStatus(instance);
 });
 // если размер окна поменяется - измерим высоту ответа заново
 window.addEventListener('resize', () => measureHeight(instance));
}

changeElementStatus

function changeElementStatus(instance) {
 if (instance.isActive) {
  hideElement(instance);
 } else {
  showElement(instance);
 }
}
Если аккордеон активен — сворачиваем его, иначе — раскрываем.


hideElement и showElement

function hideElement(object) {
 const instance = object;
 const { target } = instance;
 // обнуляем высоту ответа
 target.style.height = null;
 // делаем статус неактивным
 instance.isActive = false;
}
function showElement(object) {
 const instance = object;
 const { target, height } = instance;
 // задаем ответу сохраненную в measureHeight высоту
 target.style.height = `${height}px`;
 // делаем статус активным
 instance.isActive = true;
}

Аккордеон на чистом JS Аккордеон, Javascript, Frontend, Web, IT, HTML, Программирование, Web-программирование, Гифка, Длиннопост

Как всегда — демо на codepen.

Показать полностью 2
[моё] Аккордеон Javascript Frontend Web IT HTML Программирование Web-программирование Гифка Длиннопост
9
9
etroynov
etroynov
4 года назад
Лига Разработчиков Видеоигр

Разработка игры на phaserjs - 10: добавление звезд⁠⁠

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Добрый день, уважаемые читатели.


Предыдущие уроки:

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

Сегодня нашей целью будет добавление в игру целей. На данный момент мы реализовали полноценный мир с землей, платформами, звездами и персонажем, но на данный момент игра не имеет никакого смысла

Давайте добавим несколько звезд на сцену и позволим игроку собирать их. Для этого мы создадим новую группу под названием «звезды» и заполним ее.

Подготовка к работе

для работы над проектом вам понадобится настроенный phaserjs и установленный nodejs. Все не обходимые файлы доступны по ссылке.

В нашей функции create мы добавляем следующий код:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

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

Группы можно настраивать используя объекты конфигурации. В этом случае объект группы состоит из 3 частей:

1. Мы создаем группу объектов и помещаем ее в переменную stars;


2. Устанавливаем ключ текстуры в качестве изображения звезды. Это означает, что все дочерние элементы, добавленные в эту группу будут по умолчанию получать текстуру звезды;


3. Устанавливаем итератор равным 11. Поскольку он автоматически создает 1 дочерний элемент, повторение 11 раз означает, что в общей сложности мы получим 12 дочерних элементов, и это как раз то, что нам нужно для нашей игры.

Последняя часть - setXY - используется для определения позиции 12 дочерних элементов, которые создает группа. Каждый дочерний элемент будет размещен начиная с x: 12, y: 0 и с шагом x70. Это означает, что первый дочерний элемент будет расположен в 12 x 0, второй - в 70 пикселях от 82 x 0, третий - 152 x 0 и т. д. Значения 'step' - это действительно удобный способ разметки дочерних групп во время создания. Значение 70 выбрано, потому что это означает, что все 12 звезд будут идеально расположены на экране.

Следующий фрагмент кода выполняет обход всех элементов в группе и дает им случайное значение отказов Y в диапазоне от 0,4 до 0,8. Диапазон отскока находится между 0, отскока вообще нет, и 1, полный отскок. Поскольку все звезды появляются в точке y, гравитация будет тянуть их вниз, пока они не столкнутся с платформами или землей. Значение отскока означает, что они будут случайным образом возвращаться обратно до тех пор, пока, наконец, не успокоятся.

Если бы мы запустили код так, как сейчас, звезды упали бы сквозь землю игры и скрылись из виду. Чтобы остановить это, нам нужно проверить их столкновение с платформами. Мы можем использовать другой объект Collider для этого:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Помимо этого, мы также проверим, соприкасается ли игрок со звездой или нет:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Это говорит Phaserjs, что нужно проверить совпадение между игроком и любой звездой в группе звезд. Если они найдены, они передаются в функцию collectStar:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

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

Итог

Запуск игры теперь дает нам игрока, который может прыгать, прыгать, отскакивать от платформ и собирать звезды, падающие сверху.

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост
Показать полностью 6
[моё] Gamedev Typescript Javascript HTML Холст Phaser Длиннопост
11
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии