Сегодня курс прошел с использованием Moment.js для создания приложения обратного отсчета.

Целью урока было сделать приложение для обратного отсчета, сколько дней осталось до Рождества. Тем не менее, я решил, что сделаю его более актуальным для себя и сделаю приложение обратного отсчета, чтобы показать, сколько дней до Самоа, поскольку мы собираемся в семейную поездку в конце июня. А затем, как только я добился этого, я добавил обратный отсчет для Раротонги, почему стоит отправиться только на один тихоокеанский остров, когда вы можете посетить два за один год.

Moment.js — это библиотека, поэтому нам нужно сослаться на нее в приложении.

Во-первых, мы охватили библиотеку.

var today = moment().format('YYYY-MM-DD');
today; // returns the days date 2019-03-30

Метод isBefore() показывает, предшествуют ли дни другому дню

var then = moment('27/08/2019', 'DD/MM/YYYY')
var now = moment('27/09/2019', 'DD/MM/YYYY')
//to see if the variable of then is before the variable of now we go like this
then.isBefore(now); //returns true

Метод add() добавляет желаемое количество времени

moment().add(1, 'hour'); //adds an hour to the time

Метод diff() вычисляет разницу между двумя значениями времени.

var time1 = moment();
var time2 = moment();
//to find the difference in the time between creating the two variables
time1.diff(time2, 'seconds') // 2

Тогда пришло время сделать приложение

Во-первых, я создал HTML для приложения.

HTML был базовым и содержал только изображение и одну строку слов. В демонстрационном видео они используют санту и слова «Считай дни до следующего Рождества», но так как я решил сделать это до Самоа, я сделал изображение черепахи и «Дней до Самоа». Позже добавили еще один для Раротонга.

<body>
<img src="images/turtle.jpg" />
<h1>Days until Samoa</h1>
<h2 id="countdown"></h2>
<img src="images/raro.jpeg" />
<h1>Days until Rarotonga</h1>
<h2 id="countdown2"></h2>

Он включал изображения и заголовок, а также тег h2 с идентификатором «обратный отсчет» для дней, которые должны отображаться и быть связаны с JS и CSS.

Затем я сделал CSS для веб-сайта. Я изменил цвет фона на небесно-голубой и поместил изображение в центр, используя сетку отображения и поместив элемент в центр. Затем я изменил высоту изображения, а также для большего эффекта решил сделать изображения круглыми, используя радиус границы 50%.

body {
background-color: skyblue;
display: grid;
place-items: center;
}
img {
height: 400px;
border-radius: 50%;
}

Наконец, я добавил к нему Javascript, чтобы он добавил обратный отсчет.

Сначала я создал переменную с именем now и сделал ее равной дате и времени, когда пользователь открывает приложение с помощью moment().

var now = moment();

А затем добавить переменную с именем Samoa и сделать ее равной дате, когда мы уезжаем в Самоа.

var samoa = moment('06/29/2019', 'MM/DD/YYYY');

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

if (christmas.isBefore(now, 'days')) {
  christmas = christmas.add(1, 'year');
}

Чтобы узнать разницу, я объявил переменную diff и использовал метод diff().

var diff = samoa.diff(now, 'days');

Теперь я хочу поместить результаты этого сравнения в тег h2. Для этого я создал переменную с именем counter и использовал метод DOM для доступа к этому тегу h2. Для отображения содержимого я использовал свойство innerHTML, чтобы сделать его равным переменной diff.

var counter = document.getElementById('countdown');
counter.innerHTML = diff;

Как я уже упоминал выше, я затем прошел и сделал это снова для Раротонга, следуя тому же методу, описанному выше.

Затем я развернул веб-сайт с помощью Netlify https://ecstatic-bose-95c8e2.netlify.com/?fbclid=IwAR0mzuF8qSzLurx4jkAwOMZyzyfdgAd5wXH6zj4EVcNTlCC_DYQ8DqOLHlk

Затем, наконец, я захотел сделать сайт удобным для мобильных устройств, поэтому я использовал инструмент @mediascreen и сделал максимальную ширину 100%, а высоту — автоматической.

@media screen and (max-width: 768px) {
img {
max-width: 100%;
height: auto;
}

Было здорово сделать приложение, которое в настоящее время могло бы пригодиться мне в реальном мире. 90 дней до Самоа и 167 дней до Раротонги!