Giter Site home page Giter Site logo

t1r1 / testtask Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chaptykov/testtask

0.0 1.0 0.0 224 KB

Тестовое задание для соискателей на должность разработчика интерфейсов в 2ГИС

JavaScript 100.00%

testtask's Introduction

Тестовое задание

Описание

Разрабатывается новая версия 2ГИС. Было принято решение располагать весь контент на карточках.

Карточки рамещаются «колодой» друг над другом. Каждая следующая карточка располагается выше предыдущей. Последняя (верхняя) карточка, если она не единственная, сдвигается относительно «колоды» по оси x на 60 пикселей. Карточки занимают всю доступную высоту экрана.

Две карточки

Если карточка единственная, то она располгается без отступа.

Одна карточка

Карточки бывают двух видов: узкие и широкие.

  • Узкие карточки всегда занимают ширину 400 пикселей;
  • Широкие карточки в «колоде» занимают 400 пикселей, если широкая карточка находится наверху колоды, то она занимает всю доступную ширину, но не больше 960 пикселей.

Две карточки, последняя — широкая

На фоне планируется разместить карту. Пока, при наведении на всё пространство, не занятое карточками, цвет фона должен меняться на #e9e6d3.

На карточке отображается её порядковый номер.

Одна карточка

Формат

Карточки описываются массивом такого вида:

var cards = [
    {
        type: 'narrow'
    },
    {
        type: 'wide'
    }
];

Параметр type для каждого элемента отвечает за то, какого типа карточку выводить — узкую (narrow) или широкую (wide).

Задание

  1. Подключить на страницу файл cards.js со стартовым набором карточек;
  2. Вывести карточки, описанные в файле на странице согласно дизайну;
    • В качестве шаблонизатора предпочтительно использовать handlebarsjs;
    • в процессе проверки файл cards.js может быть заменен на любой другой валидный файл, соответствующий формату;
    • карточек может быть произвольное количество.
  3. Click по карточкам должен удалять последнюю карточку. Shift+Click — добавлять новую карточку сверху типа narrow, Shift+Alt+Click — добавлять новую карточку сверху типа wide;
  4. Задание со звездочкой: поддерживать переходы по истории браузера. Например, с помощью Shift+Click была добавлена новая карточка, кнопка «Назад» в браузере, должна вернуть страницу на шаг назад, то есть удалить последнюю карточку.

В работе можно использовать сторонние библиотеки.

Оценка

При оценке работы, в том числе, учитывается:

  • соответствие макету, аккуратность кода;
  • гибкость и масштабируемость решения.

Файлы

testtask's People

Contributors

chaptykov avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.