Из точки А в точку В: как передвигаться по Москве и не терять ни минуты - Москвич Mag
T
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":7}},{"id":3,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":-5}}],"steps":[{"id":2,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":6,"properties":{"x":1,"y":1,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

Из точки

{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

в точку

{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

:

{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

как передвигаться по Москве
и не терять ни минуты

{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":6,"properties":{"x":1,"y":1,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":0,"rotationZ":-4}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

Плохая погода, перекрытые дороги, дни перед праздниками. Что только не влияет на столичный трафик. А горожанам изо дня в день приходится решать задачку — как добраться до нужной точки так, чтобы потерять меньше нервных клеток. Кто-то справляется с этим на ура, а кому-то не помешает помощь. В совместном проекте с Яндекс Go мы составили интерактивный тест и смоделировали транспортные ситуации, в которые попадают москвичи. Подсказки друга нет, зато есть Хаб — новый раздел, который поможет спланировать поездку по городу на разных видах транспорта: автобусах, трамваях, метро, каршеринге, такси и самокатах.


{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":6,"properties":{"x":3,"y":-13,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":0,"rotationZ":-4}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
<style> <!--ВОПРОС 1//--> [name*="ansver1"]:hover { background-color: #E8E8E8; } [name*="ansver1"].selected > div { background-color: #FFF7C0 !important; } <!--ВОПРОС 4//--> [name*="answer4"], [name*="selectt"], [name*="ansver1"] { cursor:pointer !important; } [name="image-text"] { pointer-events: none; } <!--ВОПРОС 3//--> [name*="variant"] { cursor: grab; } [name*="variant"].dragging { cursor: grabbing; } [name*="variant"].dragging > div { transform: rotate(5deg) scale(1.1); } <!--ВОПРОС 4//--> [name*="answer4"], [name*="selectt"] { cursor:pointer; } [name="image-text"] { pointer-events: none; } [name*="answer2"]:hover, [name*="answer4"]:hover, [name*="route_next"]:hover, [name*="route_prev"]:hover, [name*="selectt"]:hover { background-color: #e8e8e8; } </style> <script> $(document).ready(function() { //не запускать скрипт на сайте верстки if (window.location.host == "verstka.org") { console.log("do not work in mode preview "); return false; } //выделение ID из имени function splitName(el) { let [prefix, id] = $(el).attr('name').split('-'); return [prefix, Number(id)] } const modal_all = "[name*='modal']"; //селектор модального окна const modal_close_all = "[name*='close']"; //селектор модального окна const modal_el_tpl = "[name*='modal-{NN}']"; //селектор для одного окна const modal_el_close_tpl = "[name='close-{NN}']"; //селектор модального окнашаблон для кнопки const speed = 500; //скрываем все модальные окна $(modal_all).hide(speed); $(modal_close_all).hide(speed); // Функция для открытия модального окна function openModal(id) { modal_id = modal_el_tpl.replace("{NN}", id); modal_close_id = modal_el_close_tpl.replace("{NN}", id); $(modal_id).show(speed); $(modal_close_id).show(speed); } // Функция для закрытия модального окна function closeModal(el) { attr_name = $(el).attr('name'); let [prefix, id] = splitName(el); modal_el = modal_el_tpl.replace("{NN}", id); $(modal_el).hide(speed); } $('[name="modal-1-button"]').click(function() { openModal(); }); $(modal_close_all).click(function() { closeModal(this); }); //======== ВОПРОС 1 ================= const $element1s = $('[name*="ansver1"]'); const $num_element1s = $('[name*="num1"]'); const originalPositions1 = []; const selectedelement1s = []; const step1 = $('[name="num1-2"]').offset().top - $('[name="num1-1"]').offset().top; // Расстояние между элементами //скрываем кнопку проверки ответов $('[name="check-1"]').hide(); function updateConst1() { top_element1 = $('[name="ansver1-1"]').offset().top; element1_padding = $('[name="num1-2"]').outerWidth(); //обновим стили $('[name*="num1"]').css('pointer-events', 'none'); $('[name*="ansver1"]').css('padding-left', element1_padding + 'px'); $('[name*="ansver1"]').css('cursor', 'pointer'); } updateConst1(); $(window).resize(function() { updateConst1(); }); // Сохраняем оригинальные позиции $element1s.each(function(index) { const $el = $(this); originalPositions1[index] = { top: parseInt($el.css('top')), left: parseInt($el.css('left')) }; $el.data('index', index); }); $element1s.click(function() { const $clicked = $(this); const clickedIndex = $clicked.data('index'); if ($clicked.hasClass('selected')) { // Элемент уже выбран - убираем выделение и перемещаем вниз removeFromSelected1($clicked); } else { // Новый выбор - добавляем в выбранные addToSelected1($clicked); } updatePositions1(); //проверяем, все ли элементы выбраны то показываем кнопку, иначе скрыть if ($('[name*="ansver1"].selected').length == $element1s.length) { $('[name="check-1"]').show(); } else { $('[name="check-1"]').hide(); } }); function addToSelected1($element1) { // Меняем цвет фона на красный $element1.addClass('selected'); // Добавляем элемент в массив выбранных const element1Index = selectedelement1s.findIndex(el => el.data('index') === $element1.data('index')); if (element1Index === -1) { selectedelement1s.push($element1); } } function removeFromSelected1($element1) { // Возвращаем синий цвет фона $element1.removeClass('selected'); // Удаляем элемент из массива выбранных const element1Index = selectedelement1s.findIndex(el => el.data('index') === $element1.data('index')); if (element1Index > -1) { selectedelement1s.splice(element1Index, 1); } } function updatePositions1() { // Размещаем выбранные элементы сверху selectedelement1s.forEach(($element1, index) => { const targetTop = index * step1; //$element1.css('top', targetTop + 'px'); $element1.animate({top: top_element1 + targetTop + 'px'}, 300); }); // Размещаем невыбранные элементы под выбранными const notSelected = $element1s.not('.selected'); const startY = selectedelement1s.length * step1; notSelected.each(function(index) { const $el = $(this); const targetTop = startY + (index * step1); //$el.css('top', targetTop + 'px'); $el.animate({top: top_element1 + targetTop + 'px'}, 300); }); // Обновляем порядок в DOM для правильного z-index updateDOMOrder1(); } function updateDOMOrder1() { // Сначала выбранные элементы (в порядке выбора) selectedelement1s.forEach($element1 => { $element1.parent().prepend($element1.detach()); }); // Затем невыбранные (в оригинальном порядке) $element1s.not('.selected').each(function() { $(this).parent().append($(this).detach()); }); } // Обработчик для кнопки проверки $('[name="check-1"]').click(function() { [prefix, id] = splitName(this); openModal(id); }); // ВОПРОС 2======================= //скрываем кнопку проверки ответов $('[name="check-2"]').hide(); $('[name*="answer2"]').click(function() { activeset = false; if ($(this).attr('activeset') != 'true') { activeset = true; } $('[name*="answer2"]').removeAttr('activeset'); $('[name*="answer2"]').css('background-color', ''); if (activeset == true) { $(this).attr('activeset', 'true'); $(this).css('background-color', '#fff7c0'); } //проверяем, все ли элементы выбраны то показываем кнопку, иначе скрыть const hasClickedElement2 = $('[name*="answer2"][activeset]'); if (hasClickedElement2.length > 0) { $('[name="check-2"]').show(); } else { $('[name="check-2"]').hide(); } }); $('[name="check-2"]').click(function() { [prefix, id] = splitName(this); openModal(id); }); // ВОПРО 3 ========================== // Правильные соответствия квадратов и кругов const correctMatches = { '1': '1', '2': '2', '3': '3', '4': '4', '5': '5' }; $('[name*="variant"]').css('cursor', 'grab'); const zindex = 100; let isDragging = false; let currentSquare = null; let offsetX = 0; let offsetY = 0; $('[name*="variant"].dragging').css('cursor', 'grabbing'); // Сохраняем исходные позиции всех квадратов const originalPositions = {}; $('[name*="variant"]').each(function() { const $square = $(this); const [prefix, value] = $square.attr('name').split('-'); const position = $square.position(); originalPositions[value] = { left: position.left, top: position.top }; }); // Функция для начала перетаскивания function startDrag(e) { isDragging = true; currentSquare = $(this); // Сохраняем смещение курсора относительно элемента const rect = currentSquare[0].getBoundingClientRect(); offsetX = e.clientX - rect.left; offsetY = e.clientY - rect.top; // Добавляем класс для стилизации currentSquare.addClass('dragging'); currentSquare.css('z-index', 1000); // Предотвращаем выделение текста e.preventDefault(); } // Функция для обновления позиции перетаскиваемого элемента function updatePosition(e) { if (!isDragging || !currentSquare) return; currentSquare.css({ left: (e.pageX - offsetX) + 'px', top: (e.pageY - offsetY) + 'px' }); } // Функция для завершения перетаскивания function stopDrag(e) { if (!isDragging || !currentSquare) return; isDragging = false; currentSquare.removeClass('dragging'); currentSquare.css('z-index', zindex); // Проверяем, над каким кругом отпустили const $targetCircle = findCircleUnderCursor(e); if ($targetCircle && $targetCircle.length > 0) { // Помещаем квадрат в круг placeSquareInCircle(currentSquare, $targetCircle); } else { // Если не над кругом, возвращаем квадрат на исходное место returnSquareToOriginalPlace(currentSquare); } // Проверяем, все ли квадраты размещены checkAllSquaresPlaced(); currentSquare = null; } // Функция для поиска круга под курсором function findCircleUnderCursor(e) { let $targetCircle = null; $('[name*="circle"]').each(function() { const $circle = $(this); const circleRect = $circle[0].getBoundingClientRect(); if (e.clientX >= circleRect.left && e.clientX <= circleRect.right && e.clientY >= circleRect.top && e.clientY <= circleRect.bottom) { $targetCircle = $circle; return false; } }); return $targetCircle; } // Функция для возврата квадрата на исходное место function returnSquareToOriginalPlace($square) { $square.addClass('returning'); const value = $square.attr('name').split('-')[1]; const originalPos = originalPositions[value]; if (originalPos) { $square.css({ left: originalPos.left + 'px', top: originalPos.top + 'px' }); } //setTimeout(() => { // $square.removeClass('returning'); //}, 500); } // Функция для размещения квадрата в круге function placeSquareInCircle($square, $circle) { // Проверяем, есть ли уже квадрат в этом круге let $existingSquare = null; // Ищем квадрат, который уже находится в этом круге $('[name*="variant"]').each(function(index) { if ($square.attr('name') != $(this).attr('name')) {//сам элемент не проверяем const $sq = $(this); const sqRect = $sq[0].getBoundingClientRect(); const circleRect = $circle[0].getBoundingClientRect(); // Проверяем, находится ли квадрат внутри круга if (sqRect.left >= circleRect.left && sqRect.right <= circleRect.right && sqRect.top >= circleRect.top && sqRect.bottom <= circleRect.bottom) { $existingSquare = $sq; return false; // break loop } } }); // Если в круге уже есть квадрат, возвращаем его на место if ($existingSquare && $existingSquare.attr("name") != $square[0]) { returnSquareToOriginalPlace($existingSquare); } const circleRect = $circle[0].getBoundingClientRect(); const circlePosition = $circle.position(); // Центрируем квадрат в круге $square.css({ left: (circlePosition.left + (circleRect.width - $square.width()) / 2) + 'px', top: (circlePosition.top + (circleRect.height - $square.height()) / 2) + 'px' }); // Обновляем состояние круга updateCircleState($circle, $square); // Проверяем состояние кнопки после размещения checkAllSquaresPlaced(); } // Функция для обновления состояния круга function updateCircleState($circle, $square) { $circle.removeClass('correct incorrect'); const [prefix_sq, squareValue] = $square.attr('name').split('-'); const [prefix_crl, circleNumber] = $circle.attr('name').split('-'); if (correctMatches[squareValue] == circleNumber) { $circle.addClass('correct'); } else { $circle.addClass('incorrect'); } } // Функция для проверки, все ли квадраты размещены function checkAllSquaresPlaced() { const $circles = $('[name*="circle"]'); let allPlaced = true; // Проверяем, есть ли в каждом круге хотя бы один квадрат $circles.each(function() { const $circle = $(this); const circleRect = $circle[0].getBoundingClientRect(); let hasSquare = false; $('[name*="variant"]').each(function() { const $square = $(this); const squareRect = $square[0].getBoundingClientRect(); // Проверяем пересечение квадрата и круга if (squareRect.left >= circleRect.left && squareRect.right <= circleRect.right && squareRect.top >= circleRect.top && squareRect.bottom <= circleRect.bottom) { hasSquare = true; return false; // break loop } }); if (!hasSquare) { allPlaced = false; return false; // break loop } }); // Изменяем цвет кнопки if (allPlaced) { $('[name="check-3"]').addClass('active'); $('[name="check-3"]').show(); } else { $('[name="check-3"]').removeClass('active'); $('[name="check-3"]').hide(); } return allPlaced; } $('[name="check-3"]').hide(); // Обработчик кнопки проверки $('[name="check-3"]').click(function() { if ($(this).hasClass('active')) { //отображаем модальное окно [prefix, id] = splitName(this); openModal(id); } else { return false; //alert('Разместите все квадраты в круги сначала!'); } }); // Инициализация перетаскивания $(document).on('mousedown', '[name*="variant"]', startDrag); $(document).on('mousemove', updatePosition); $(document).on('mouseup', stopDrag); // Отключаем контекстное меню $(document).on('contextmenu', '[name*="variant"]', function(e) { e.preventDefault(); return false; }); //================= ВОПРОС 4 ================================ const correctAnsver4 = [2, 3] $('[name*="answer4"]').click(function() { activeset = false; if ($(this).attr('activeset') == 'true') { activeset = true; } if (activeset == false) { $(this).attr('activeset', 'true'); $(this).css('background-color', '#fff7c0'); } else { $(this).attr('activeset', 'false'); $(this).css('background-color', ''); } }); $('[name="check-4"]').click(function() { // Находим все элементы с name="answer4" и проверяем наличие класса const Ansvers4 = []; $('[name*="answer4"][activeset]').each(function() { if ($(this).attr('activeset') == 'true') { let [prefix, id] = $(this).attr('name').split('-'); Ansvers4.push(id); //подсвечиваем корректные и не корректные if (correctAnsver4.includes(Number(id))) { $(this).css('background-color', '#c6f0b9'); } else { $(this).css('background-color', '#ffe0dc'); } } }); if (Ansvers4.length > 0) { //отображаем модальное окно let [prefix, id] = splitName(this); openModal(id); } else { return false; } }); //ВОПРОС 5 ============ // Массив с треками const tracks = [ 'https://storage.yandexcloud.net/moskvichmag/uploads/2025/09/1-1.mp3', 'https://storage.yandexcloud.net/moskvichmag/uploads/2025/09/2-1.mp3', 'https://storage.yandexcloud.net/moskvichmag/uploads/2025/09/3-1.mp3', 'https://storage.yandexcloud.net/moskvichmag/uploads/2025/09/4-1.mp3' ]; $('[name*="track"]').css('cursor', 'pointer'); const $track_selector = $("[name*='track']"); const $box_t = $("[name*='box_t']"); const $selecttrack_selector = $("[name*='selectt']"); trackIndex = 0; trackCurrent = 0; audio = [] // Создаем аудио элемент for (let i = 0; i < tracks.length; i++) { audio[i] = new Audio(); audio[i].src = tracks[i]; // Назначаем обработчик события завершения трека audio[i].addEventListener('ended', handleTrackEnd); } // Обработчик клика на трек $track_selector.click(function() { let [prefix_t, trackNumber, btn] = $(this).attr('name').split('-'); trackNumber = parseInt(trackNumber); const trackIndex = trackNumber - 1; if (trackIndex >= 0 && trackIndex < tracks.length) { //если это тот же трек и не на паузе то ставим на паузу if (trackCurrent == trackNumber & !(audio[(trackCurrent-1)]?.paused)) { audio[(trackCurrent-1)].pause(); selector_t = '[name="' + [prefix_t, trackNumber, 'play'].join('-') + '"]'; $(selector_t).show(); } // если тот же и на паузе то проигрываем else if (trackCurrent == trackNumber & audio[(trackCurrent-1)]?.paused) { audio[trackIndex].play(); $(this).hide(); } //иначе воспроизводим else { if (trackCurrent > 0) { audio[(trackCurrent-1)]?.pause(); audio[(trackCurrent-1)].currentTime = 0; selector_t = '[name="' + [prefix_t, trackCurrent, 'play'].join('-') + '"]'; $(selector_t).show(); } audio[trackIndex].play().catch(error => { console.log('Ошибка воспроизведения:', error); }); $(this).hide(); } trackCurrent = trackNumber; } }); // Функция для обработки завершения трека function handleTrackEnd() { selector_t = '[name="track-' + [trackCurrent, 'play'].join('-') + '"]'; $(selector_t).show(); trackCurrent = 0; } $($selecttrack_selector).click(function() { activeset5 = false; if ($(this).attr('activeset') != 'true') { activeset5 = true; } let [prefix_t, trackN] = $(this).attr('name').split('-'); track_block = '[name="' + ['box_t', trackN].join('-') + '"]'; $($selecttrack_selector).removeAttr('activeset'); $($box_t).css('background-color', ''); if (activeset5 == true) { $(this).attr('activeset', 'true'); $(track_block).css('background-color', '#fff7c0'); } //проверяем, все ли элементы выбраны то показываем кнопку, иначе скрыть const hasClickedElement5 = $('[name*="selectt"][activeset]'); if (hasClickedElement5.length > 0) { $('[name="check-5"]').show(); } else { $('[name="check-5"]').hide(); } }); //скрываем кнопку проверки ответов $('[name="check-5"]').hide(); $('[name="check-5"]').click(function() { // Находим все элемент и проверяем наличие класса const hasClickedElement = $('[name*="selectt"][activeset]'); if (hasClickedElement.length > 0) { //отображаем модальное окно [prefix, id] = splitName(this); openModal(id); } else { return false; } //подсвечиваем выбранный ответ, если 4тый то верно, иначе не красный let [prefix_t, trackSelectNumber] = $('[name*="selectt"][activeset]').attr('name').split('-'); if (parseInt(trackSelectNumber) == 4) { bg_color = "#c6f0b9"; } else { bg_color = "#ffe0dc"; } track_block = '[name="' + ['box_t', trackSelectNumber].join('-') + '"]'; $(track_block).css('background-color', bg_color); }); }); </script>

Ура, бабье лето и теплые сентябрьские выходные. Вы решили полюбоваться красотами московских парков и заглянуть в «Коломенское», «Царицыно» и «Кусково». Выберите, в какой последовательности лучше всего отправиться по локациям, чтобы посетить их за один день и передвигаться на общественном транспорте с минимальным количеством пересадок. 

Оптимальный вариант: начать с «Коломенского», оттуда перебраться в «Царицыно» и завершить день в «Кусково».

{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":6,"properties":{"x":3,"y":-13,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":0,"rotationZ":-4}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

Открываем Хаб в Яндекс Go и видим, что из «Коломенского» в «Царицыно» можно доехать по прямой ветке метро — садимся на станции «Коломенская», выходим на «Орехово». Всего три остановки, никаких пересадок и 11 минут в пути.

Из «Царицыно» до «Кусково» дорога займет чуть больше времени. Ехать можно двумя способами: метро или метро + МЦД. Но так как наша задача минимизировать пересадки, то останавливаемся на первом варианте: от «Орехово» по прямой добираемся до «Новокузнецкой», а там переходим на Калининскую линию и проезжаем четыре остановки до «Перово».


Нажмите на шаг — он поднимется вверх. Второй шаг встанет третьим. Повторный клик снимает выбор.

«Коломенское»

Дальше нас ждет получасовая прогулка пешком до парка и... вуаля — мы на месте и любуемся владениями Шереметевых, узнать подробности о которых можно из совместного проекта Хаба с «Усадьбами Москвы».

 «Царицыно»

 «Кусково»

{"points":[{"id":13,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":15,"properties":{"x":0,"y":8,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":14,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":180,"rotationZ":0}},{"id":6,"properties":{"x":6,"y":11,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":180,"rotationZ":-4}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":3,"properties":{"x":0,"y":0,"z":0,"opacity":0.7,"scaleX":0.98,"scaleY":0.98,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":2,"properties":{"duration":0.4,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

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


Самый быстрый вариант — сочетать такси и метро. Добраться от «Курской» до «Павелецкой» оптимально и на метро по прямой Кольцевой ветке, но до него еще нужно дойти. А дорога на такси по Садовому кольцу от офиса до дома займет буквально пару минут.

Ваш офис — на «Курской», в Лялином переулке.
Живете вы на «Павелецкой», на улице Бахрушина.
Ну а где находится Большой театр, объяснять не нужно.

А вот в театр лучше поехать на метро. Спектакль в 19.00, а это самый час пик на московских дорогах. В такси в это время — наплыв клиентов. Свободных машин меньше, чем желающих уехать, поэтому к стоимости поездки может прибавиться повышающий коэффициент. Это — временная автоматическая мера сервиса, которая помогает уехать тем, кто не может отложить поездку на такси, и которая позволяет привлечь больше водителей в часы ажиотажа. Учитывая этот фактор, спускайтесь в метро на «Павелецкой» и через одну станцию выходите на «Театральной». По эскалатору можете не бежать, ведь вы при параде, да и времени с запасом и вы успеваете в буфете перед началом спектакля.

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


А после спектакля домой можно вернуться на каршеринге. Во-первых, проехать по центру Москвы — это красиво: вы увидите силуэт высотки на Котельнической набережной и «Зарядье». Во-вторых, быстро, ведь пробки уже рассосутся.

{"points":[{"id":13,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":15,"properties":{"x":0,"y":8,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":14,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

автобус + такси

самокат + автобус

такси + метро

{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":3,"properties":{"x":0,"y":0,"z":0,"opacity":0.7,"scaleX":0.98,"scaleY":0.98,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":2,"properties":{"duration":0.4,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":180,"rotationZ":0}},{"id":6,"properties":{"x":6,"y":11,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":180,"rotationZ":-4}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

Вы решили сходить в московский зоопарк, пока еще тепло и звери не попрятались по вольерам. Да и просто панде Катюше уже исполнилось два года, а вы ее еще ни разу не видели.


Перетащите карточки в нижние круги в нужной последовательности. Порядок можно менять перетаскиванием; чтобы убрать шаг, верните карточку наверх. Готовы — нажмите «Проверить».

Живете вы в самом сердце города — в знаменитом Доме на Набережной на Серафимовича, 2. Перед вами пять элементов пазла с шагами из точки А в точку Б. Расставьте их в правильном порядке, чтобы добраться до Катюши и посмотреть, как она грызет бамбук.


Правильный маршрут такой: сначала пройдите 900 метров до метро «Боровицкая», затем поезжайте до «Пушкинской», сделайте переход на Таганско-Краснопресненскую линию, оттуда двигайтесь до «Баррикадной» и уже от станции дойдите пешком ещё 250 метров.

Время в пути займет 32 минуты. И да — до станции «Боровицкая» вы будете идти, любуясь открыточным видом на Кремль, по Большому Каменному мосту, который еще по-летнему украшен цветами.


Обе точки находятся в центре города, где высокая вариативность маршрутов. Не верите? Открывайте Хаб в Яндекс Go. До зоопарка можно доехать и без пересадок — на автобусах М3, С344 или Н14. Правда, тогда прогуляться через Москву-реку нужно будет не до станции метро «Боровицкая», а до автобусной остановки «Манежная площадь». Ну или доехать прямо от дома на самокате. И, кстати, это будет на пару минут быстрее, чем на метро или автобусе.


{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":43,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0.6,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":48,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":47,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0.2,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":43,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0.4,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":31,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":31,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":31,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":13,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":15,"properties":{"x":0,"y":8,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":14,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":31,"y":1,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":3,"properties":{"x":0,"y":0,"z":0,"opacity":0.7,"scaleX":0.98,"scaleY":0.98,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":2,"properties":{"duration":0.4,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":180,"rotationZ":0}},{"id":6,"properties":{"x":6,"y":11,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":180,"rotationZ":-4}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

Сегодня у вас — музейный день. Вы сходили в Пушкинский и решили успеть еще и на выставку Кустодиева, которая проходит в старом корпусе Третьяковки. Вы посмотрели рекомендации Хаба и оказалось, что самый быстрый вариант — доехать на велосипеде. За 11 минут и 120 рублей. Ниже — иконки с достопримечательностями Москвы. Выберите те, которые вы увидите по пути.


Можно выбрать несколько вариантов.

Перемещаясь из одного главного музея Москвы в другой, вы проедете мимо храма Христа Спасителя и «ГЭС-2». А в Лаврушинский переулок свернете напротив нового корпуса Третьяковской галереи, который тоже вполне себе достопримечательность. 


В Хаб в Яндекс Go можно отфильтровать самые быстрые и выгодные маршруты или те, где меньше идти пешком. Но последний можно припасти для второй половины осени, когда похолодает и зарядят дожди.


ГЭС-2

Храм Христа Спасителя

Поклонная гора

Большой театр

{"points":[{"id":13,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":15,"properties":{"x":0,"y":8,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":14,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

Останкинская телебашня

Главное здание МГУ

Собор Василия Блаженного

{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":3,"properties":{"x":0,"y":0,"z":0,"opacity":0.7,"scaleX":0.98,"scaleY":0.98,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":2,"properties":{"duration":0.4,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

После прогулки по Речному вокзалу у вас встреча с друзьями в китайском дамплинг-баре на Покровке. Вы вбили точки в Хабе, и он показал, что самый быстрый вариант — добраться на метро от «Речного вокзала» до «Китай-города». Перед вами — несколько звуковых дорожек, которые вы услышите по пути. Выберите лишнюю.


Верный ответ - «Осторожно, двери закрываются, следующая станция “Чистые пруды“».

Его вы действительно не услышите, потому что от «Пушкинской» проедете одну остановку до «Китай-города» и выйдете в город — на улицу Покровка.

{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":3,"properties":{"x":0,"y":0,"z":0,"opacity":0.7,"scaleX":0.98,"scaleY":0.98,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":2,"properties":{"duration":0.4,"delay":0,"bezier":[],"ease":"Power2.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":7,"properties":{"x":0,"y":0,"z":0,"opacity":0.1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":9,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":8,"properties":{"duration":0.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

Ну что же — вы довольно опытный городской житель и ориентируетесь, как оптимально передвигаться в мегаполисе. 

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


{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":3,"properties":{"x":1,"y":4,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}}],"steps":[{"id":2,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":1,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":3,"properties":{"x":-4,"y":4,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":-3}}],"steps":[{"id":2,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}
{"points":[{"id":4,"properties":{"x":0,"y":0,"z":0,"opacity":1,"scaleX":1,"scaleY":1,"rotationX":0,"rotationY":0,"rotationZ":0}},{"id":6,"properties":{"x":3,"y":-13,"z":0,"opacity":1,"scaleX":1.03,"scaleY":1.03,"rotationX":0,"rotationY":0,"rotationZ":-4}}],"steps":[{"id":5,"properties":{"duration":1.8,"delay":0,"bezier":[],"ease":"Sine.easeInOut","automatic_duration":true}}],"transform_origin":{"x":0.5,"y":0.5}}

РЕКЛАМА

Реклама. ООО «Яндекс.Такси». ИНН: 7704340310. erid: 2W5zFJxMVq2

{"width":1440,"column_width":720,"columns_n":2,"gutter":0,"margin":0,"line":20}
default
true
960
1440
false
false
true
{"mode":"page","transition_type":"slide","transition_direction":"horizontal","transition_look":"belt","slides_form":{}}
{"css":".editor {font-family: CoFo Robert Beta Fix; font-size: 16px; font-weight: 400; line-height: 24px;}"}