Search the Community
Showing results for tags 'Javascript'.
-
Добрый день! Огромная просьба камнями не кидаться! Начал изучать JS , пока нет особых продвижений в изучении. помогите оптимизировать игру в пары. по условиям задания необходимо реализовать игру в пары с таймером, выбором количества карт . Ниже https://codepen.io/Seadjus/pen/VwVedaP
-
Прошу помочь с заданием: Написать файл скрипта, который генерирует три числа, соответствующие значениям высоты, длины и ширины комнаты. Отобразить в консоли: a.Площадь стен комнаты b.Объём комнаты c.*Объём комнаты за вычетом случайно сгенерированного количества чисел, которые определяет объёмы случайно зашедших в комнату людей. (в итоге запустит скрипт последством консоли) (заранее огромное спасибо)
-
- js
- javascript
-
(and 1 more)
Tagged with:
-
Использую готовый плагин для модальных окон(от MaxGraph). Проблема в том, что когда у меня открыто два модальных окна, для примера Форма + Политика конфендициальности, и мне нужно закрыть политику вместе с ней закрывается и другое модальное окно. В JS я не сильно разбираюсь(собственно из за этого и использую готовый плагин), можете помочь кто работал с этим плагином? Я примерно понимаю как он работает, но реализовать чтобы закрывалось только одно не получается. <div class="content"> <button class="modal-btn" data-path="first" data-animation="fadeInUp" data-speed="1500">Открыть окно 1</button> </div> <div class="modal"> <div class="modal__wrapp" data-target="first"> <div class="modal__content"> <button class="modal__close">Закрыть</button> модальное окно <button data-path="policy">Политика</button> </div> </div> <div class="modal__wrapp" data-target="policy"> <div class="modal__content"> <button class="modal__close">Закрыть</button> политика </div> </div> </div> .modal { --transition-time: 0.3s; position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 1000; cursor: pointer; overflow-y: auto; overflow-x: hidden; text-align: center; opacity: 0; visibility: hidden; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp { display: none; cursor: default; width: fit-content; height: fit-content; } .modal__content{ position: absolute; left: 500px; width: 500px; height: 500px; display: flex; color: white; flex-direction: column; text-align: left; background-color: #000; } .modal__content button{ width: 200px; height: 50px; margin: 50px 0; } .modal.is-open { opacity: 1; visibility: visible; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp.modal-open { display: flex; } .disable-scroll { position: relative; overflow: hidden; height: 100vh; position: fixed; left: 0; top: 0; width: 100%; } .fade { opacity: 0; transition: opacity var(--transition-time); } .fade.animate-open { opacity: 1; transition: opacity var(--transition-time); } .fadeInUp { opacity: 0; transform: translateY(vw(-100)); transition: opacity var(--transition-time), transform var(--transition-time); } .fadeInUp.animate-open { opacity: 1; transform: translateY(0); transition: opacity var(--transition-time), transform var(--transition-time); } .modal__wrapp[data-target="policy"] .modal__content{ left: 1050px; background-color: #000; opacity: .5; } class Modal { constructor(options) { let defaultOptions = { isOpen: () => {}, isClose: () => {}, } this.options = Object.assign(defaultOptions, options); this.modal = document.querySelector('.modal'); this.speed = false; this.animation = false; this.isOpen = false; this.modalContainer = false; this.previousActiveElement = false; this.fixBlocks = document.querySelectorAll('.fix-block'); this.focusElements = [ 'a[href]', 'input', 'button', 'select', 'textarea', '[tabindex]' ]; this.events(); } events() { if (this.modal) { document.addEventListener('click', function(e){ const clickedElement = e.target.closest('[data-path]'); if (clickedElement) { let target = clickedElement.dataset.path; let animation = clickedElement.dataset.animation; if (clickedElement.classList.contains('modal-close')) { this.close(); } let speed = clickedElement.dataset.speed; this.animation = animation ? animation : 'fade'; this.speed = speed ? parseInt(speed) : 300; this.modalContainer = document.querySelector(`[data-target="${target}"]`); this.open(); return; } if (e.target.closest('.modal__close')) { this.close(); return; } }.bind(this)); window.addEventListener('keydown', function(e) { if (e.keyCode == 27) { if (this.isOpen) { this.close(); } } if (e.keyCode == 9 && this.isOpen) { this.focusCatch(e); return; } }.bind(this)); this.modal.addEventListener('click', function(e) { if (!e.target.classList.contains('modal__wrapp') && !e.target.closest('.modal__wrapp') && this.isOpen) { this.close(); } }.bind(this)); } } open() { this.previousActiveElement = document.activeElement; this.modal.style.setProperty('--transition-time', `${this.speed / 1000}s`); this.modal.classList.add('is-open'); this.disableScroll(); this.modalContainer.classList.add('modal-open'); this.modalContainer.classList.add(this.animation); setTimeout(() => { this.options.isOpen(this); this.modalContainer.classList.add('animate-open'); this.isOpen = true; this.focusTrap(); }, this.speed); } close() { if (this.modalContainer) { this.modalContainer.classList.remove('animate-open'); this.modalContainer.classList.remove(this.animation); this.modal.classList.remove('is-open'); this.modalContainer.classList.remove('modal-open'); this.enableScroll(); this.options.isClose(this); this.isOpen = false; this.focusTrap(); } } focusCatch(e) { const focusable = this.modalContainer.querySelectorAll(this.focusElements); const focusArray = Array.prototype.slice.call(focusable); const focusedIndex = focusArray.indexOf(document.activeElement); if (e.shiftKey && focusedIndex === 0) { focusArray[focusArray.length - 1].focus(); e.preventDefault(); } if (!e.shiftKey && focusedIndex === focusArray.length - 1) { focusArray[0].focus(); e.preventDefault(); } } focusTrap() { const focusable = this.modalContainer.querySelectorAll(this.focusElements); if (this.isOpen) { focusable[0].focus(); } else { this.previousActiveElement.focus(); } } disableScroll() { let pagePosition = window.scrollY; this.lockPadding(); document.body.classList.add('disable-scroll'); document.body.dataset.position = pagePosition; document.body.style.top = -pagePosition + 'px'; } enableScroll() { let pagePosition = parseInt(document.body.dataset.position, 10); this.unlockPadding(); document.body.style.top = 'auto'; document.body.classList.remove('disable-scroll'); window.scroll({ top: pagePosition, left: 0 }); document.body.removeAttribute('data-position'); } lockPadding() { let paddingOffset = window.innerWidth - document.body.offsetWidth + 'px'; this.fixBlocks.forEach((el) => { el.style.paddingRight = paddingOffset; }); document.body.style.paddingRight = paddingOffset; } unlockPadding() { this.fixBlocks.forEach((el) => { el.style.paddingRight = '0px'; }); document.body.style.paddingRight = '0px'; } } const modal = new Modal({ isOpen: (modal) => { console.log(modal); console.log('opened'); }, isClose: () => { console.log('closed'); }, });
-
Здравствуйте. Имеется рабочий скрипт конвертера валют. https://ilyamio.github.io/currencyconverter/ Мне необходимо изменить источник загрузки курсов на ЦБ РФ вот по этой ссылке: https://www.cbr.ru/scripts/XML_daily.asp А также мне необходимо установить ограничение на количество обращений к сайту ЦБ РФ - 1 раз в сутки. При частом обращении, могут заблокировать. Вот в этом js файле находятся настройки конвертера: const from_currencyEl = document.getElementById('from_currency'); const from_ammountEl = document.getElementById('from_ammount'); const to_currencyEl = document.getElementById('to_currency'); const to_ammountEl = document.getElementById('to_ammount'); const rateEl = document.getElementById('rate'); const exchange = document.getElementById('exchange'); from_currencyEl.addEventListener('change', calculate); from_ammountEl.addEventListener('input', calculate); to_currencyEl.addEventListener('change', calculate); to_ammountEl.addEventListener('input', calculate); exchange.addEventListener('click', () => { const temp = from_currencyEl.value; from_currencyEl.value = to_currencyEl.value; to_currencyEl.value = temp; calculate(); }); function calculate() { const from_currency = from_currencyEl.value; const to_currency = to_currencyEl.value; fetch(`https://api.exchangerate-api.com/v4/latest/${from_currency}`) .then(res => res.json()) .then(res => { const rate = res.rates[to_currency]; rateEl.innerText = `1 ${from_currency} = ${rate} ${to_currency}` to_ammountEl.value = (from_ammountEl.value * rate).toFixed(2); }) } calculate(); Как мне изменить настройки в этом файле чтобы курсы брались с https://www.cbr.ru/scripts/XML_daily.asp и включить ограничение на количество обращений по ссылке cbr.ru - 1 раз в сутки? Заранее спасибо всем, кто хотел помочь с решением этой задачи.
- 4 replies
-
- помощь
- калькулятор
-
(and 2 more)
Tagged with:
-
$(function () { var mixer = mixitup('.directions__list'); $('.directions__filter-btn').on('click', function () { $('.directions__filter-btn').removeClass('directions__filter-btn--active') $(this).addClass('directions__filter-btn--active') }) })
-
Всем привет, у меня такой вот вопрос, делаю сайт через react и при изменении расширения что-то идёт не так и какой-то бред получается, подскажите как решить данную проблему. Я вообще не понимаю из-за чего это происходит, по этому не могу нормально объяснить 😅.
-
Подскажите пожалуйста, как правильно сделать кастомный список стран используя API. Вот fetch код: const countryList = document.querySelector('.form-list.country'); fetch('https://restcountries.com/v3.1/all').then(res => { return res.json(); }).then(data => { let output = ''; data.forEach(country => { output += `<li class="form-item" data-value="${country.name.common}">${country.name.common}</li>`; countryList.innerHTML = output; }); }).catch(err => { console.log(err); }); полный код html, css, js Во втором списке "Country" список формируется, но название страны не поставляется в форму, а атрибут "data-value="" " в инпут ниже. В первом списке "Guests Amount" все ок, т.к. данные прописаны в html. Нужен такой же, но со странами. Сразу скажу, с тегом select все работает, но мне нужна стилизованная выпадашка. Заранее спасибо.
-
Сколько не пытался все это сделать, ничего не получалось Добавление кнопки меню на сайт с dark mode, изменение бекграунда, высоты, размеров текста для удобного чтения. Находил много кодов для этого, но никак не мог разобраться что и куда вставить, так как большинство кодов html,js,css были добавлены веб-конструктором Пытался разобраться, обучаясь на разных сайтах, но так и не смог понять что к чему. Возможно, у кого-то есть статья на эту тему или кто-то сможет обьяснить что и куда Зарание спасибо.
-
Есть несколько страниц, которые нужно перенести в свой блог, а точнее часть кода страницы. Перенести их простым копированием html возможно, но интересует именно перенос с обновлением контента из копируемой страницы. Существует ли простое решение этой задачи, или нужен комплексный подход?
- 1 reply
-
- javascript
- css
-
(and 1 more)
Tagged with:
-
Всем привет! Помогите правильно поставить localStorage в скрипт. У меня почему-то не срабатывает, и при обновлении страницы теряется класс актив. Пробовала много разных вариаций, но всё равно не срабатывает, не могу понять, что не нравится. Сам скрипт: <input <?= $checked; ?> type="checkbox" id="compareid_<?= $arItem['ID']; ?>" data-id="<?= $arItem['ID']?>" onchange="compare_tov(<?= $arItem['ID']; ?>);"> <label for="compareid_<?= $arItem['ID']; ?>" style="display: block; width: 36px; height: 36px; position: absolute; top: 55px;"> <span class="comparTov_<?= $arItem['ID']; ?>" style="background:url(image1.png);"></span> </label> function compare_tov(id) { var chek = document.getElementById('compareid_'+id); if (chek.checked) { //Добавить var AddedGoodId = id; $.get("/local/ajax/list_compare.php", { action: "ADD_TO_COMPARE_LIST", id: AddedGoodId}, function(data) { $('#my_compare_list_count').html(data); var activeID = $('.comparTov_'+id).html('<img src="image2.png" />').addClass('active'); console.log(activeID); localStorage.getItem("active", activeID); } ); } else { //Удалить var AddedGoodId = id; $.get("/local/ajax/list_compare.php", { action: "DELETE_FROM_COMPARE_LIST", id: AddedGoodId}, function(data) { $('#my_compare_list_count').html(data); var activeID = $('.comparTov_'+id).html('<img src="image1.png" />').removeClass('active'); console.log(activeID); localStorage.removeItem("active", activeID); } ); } }
-
Всем привет! Помогите, пожалуйста, добавить в код ограничение по ходам, если возможно как-нибудь проще. В инете находила решения, но с ними код всё равно не работает как положено. Заранее спасибо!! https://jsfiddle.net/6zjoLpnt/1/
-
Ребята, без вас никуда! Подскажите, пожалуйста, первый раз адаптирую и стилизую слайдер splide. Сам он работает, но как его стилизовать? В dev tools стилизация тех же стрелок отражается, но когда вношу их в css - не работает. Почему так? Как, например, тогда опустить ниже стрелки? Где устанавливать брейкпоинты и задавать им свойства? На сайте splide такая инфа по адаптиву. https://splidejs.com/guides/options/#breakpoints Вот типа того что-то пробую... https://jsfiddle.net/aqmuyhwd/
-
Всем привет! Подскажите, пожалуйста, почему alert выводит 'you are under 18!', затем 'you are more than 18!', а 'you are 18!' пропускает. Имею в виду, если вводить 18, то ок, но если просто нажимать "ок", то как раз 'you are 18!' пропадает. https://jsfiddle.net/4murgp2c/6/ И вот здесь https://jsfiddle.net/4murgp2c/10/ при выборе "ok" alert не должен был предотвратить вывод следующего значения (bad), который по идее должен выводиться только при нажатии на отмену? https://jsfiddle.net/4murgp2c/12/ Здесь какая-то простая ошибка, но моему глазу не видна. Вписываю "you" good не появляется. Заранее спасибо. Такие, возможно, очевидные вещи не видны/не понятны начинающему.
- 3 replies
-
- javascript
- js
-
(and 1 more)
Tagged with:
-
Ссылка на тетрис: http://onlinetetris.noradrzo.beget.tech/ Добрый день, столкнулась с проблемой кнопки “пауза” в игре сделала обработчик на кнопку “пауза” (в самом конце файла js) написала переменную isPaused по умолчанию со значением false (пока игра не начнется) (317 строчка в js) в функции падении фигур move(321 строчка в js), добавила условие, что если не на паузе игра, то фигуры падают но в итоге фигуры вообще не падают, в консоле ошибку не выдает где допущена ошибка?
-
Подскажите, пожалуйста, как можно исправить не работающий клик, в данном случае, по меню-бургеру. Срабатывает вместо этого hover. Заранее спасибо! <nav class="burger-menu mobile-open"> <button class="burger-menu__btn-mobile"> <i class="fas fa-bars"></i> <span>Menu</span> </button> <ul class="burger-menu__list"> <li class="burger-menu__item"> @@include('./partials/menu/_menu.html', { "item": "contacts" }) </li> <li class="burger-menu__item"> @@include('./partials/menu/_menu.html', { "item": "e-shop" }) </li> <li class="burger-menu__item"> @@include('./partials/menu/_menu.html', { "item": "faq" }) </li> <li class="burger-menu__item"> @@include('./partials/menu/_menu.html', { "item": "home" }) </li> </ul> </nav> var menuEl = document.querySelector('.burger-menu'); var btnEl = document.querySelector('.burger-menu__btn-mobile'); function toggleMenu() { menuEl.classList.toggle('open'); } btnEl.onclick = toggleMenu;
- 1 reply
-
- js
- javascript
-
(and 2 more)
Tagged with:
-
Верстка за отзыв\работу в портфолио\символическую плату
Хромихин Дмитрий posted a topic in Freelance
Здравствуйте. Начинающий верстальщик. Ищу первые заказы. Готов верстать что угодно за любую плату (в том числе и бесплатно). Есть 5-7 учебных работ, но этим никого не впечатлить -- очень хочу практического опыта. Использую HTML5/CSS3, JS, JQuery, BEM. Так же разные инструменты, вроде Git, GitHub, SASS/SCSS, Gulp. Если не знаю чего-то необходимого для Вашего проекта\работы -- обязательно разберусь. Если вы разработчик и вам некому спихнуть рутинную работу - я с радостью возьму её на себя; Верстаю из Figma, Photoshop, Illustrator. Могу в адаптивность, отзывчивость, кроссбраузерность, несложную анимацию. телеграмм: туц ; почта: dmitriq.khromikhin@gmail.com Точно на связи с 9:00 до 22:00. Открыт для любых предложений.-
- javascript
- css
-
(and 2 more)
Tagged with:
-
Здравствуйте, пытаюсь сделать небольшой редактор. Сначала нажимается кнопка на html-странице, потом заполняется форма с параметрами графоэлемента (иконы), эти параметры считывает скрипт, передаёт их в другую функцию. Та формирует код HTML с тегом svg и вставляет в блок draw. В этом деле вообще начинающий, ещё в голове путаница с расположением элементов, паддингами и т.п. А проблема, что после исполнения скрипта ничего не происходит, иногда на секунду мелькает что-то похожее, но в целом результата нет. Код HTML: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>Иконы</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="open-button"> <button onclick="openForm()">Открыть форму</button> </div> <div class="form-popup" id="IconForm"> <form class="form-container"> <h1>Параметры иконы</h1> <label for="bordercolor"><b>Цвет границы</b></label> <select id='select_bc' size='1'> <option value='#000'>Чёрный</option> <option value='#00f'>Синий</option> <option value='#f00'>Красный</option> <option value='#0f0'>Зелёный</option> </select> <p></p> <label for="background"><b>Цвет фигуры</b></label> <select id='select_bg' size='1'> <option value='#fff'>Белый</option> <option value='#bbf'>Синий</option> <option value='#fbb'>Красный</option> <option value='#bfb'>Зелёный</option> </select> <p></p> <label for="fontcolor"><b>Цвет текста</b></label> <select id='select_fc' size='1'> <option value='#000'>Чёрный</option> <option value='#00f'>Синий</option> <option value='#f00'>Красный</option> <option value='#0f0'>Зелёный</option> </select> <p></p> <label for="text"><b>Содержание фигуры</b></label> <textarea id="text_in" cols="20" rows="3"></textarea> <button type="submit" class="btn" onclick="return acceptArgs()">Принять</button> <button type="submit" class="btn cancel" onclick="return closeForm()">Закрыть</button> </form> </div> <div id="Draw"></div> <script type="text/javascript" src="script.js"></script> </body> </html> CSS: {box-sizing: border-box;} /* Кнопка, используемая для открытия формы */ .open-button { background-color: #555; color: white; padding: 16px 20px; border: none; cursor: pointer; opacity: 0.8; position: fixed; width: 280px; } /* Всплывающая форма-скрыта по умолчанию */ .form-popup { display: none; position: fixed; border: 3px solid #f1f1f1; z-index: 9; } /* Добавить стили для контейнера формы */ .form-container { max-width: 300px; padding: 10px; background-color: white; } /* Поля ввода полной ширины */ .form-container input[type=text], .form-container input[type=password] { width: 100%; padding: 15px; margin: 5px 0 22px 0; border: none; background: #f1f1f1; } /* Когда входы получают фокус, сделайте что-нибудь */ .form-container input[type=text]:focus, .form-container input[type=password]:focus { background-color: #ddd; outline: none; } /* Стиль для кнопок */ .form-container .btn { background-color: green; color: white; padding: 16px 20px; border: none; cursor: pointer; width: 100%; margin-bottom:10px; opacity: 0.85; } /* Красный цвет фона для кнопки "Отмена" */ .form-container .cancel { background-color: red; } /* Добавить некоторые эффекты наведения на кнопки */ .form-container .btn:hover, .open-button:hover { opacity: 1; } JS: function openForm() { document.getElementById("IconForm").style.display = "block"; } function closeForm() { document.getElementById("IconForm").style.display = "none"; return false; } function drawIcon(bc, bg, fc, text) { var svg = '<svg> <rect rx="32.8" ry="18.3" x="500" y="500" height="55" width="99" '; svg += 'fill="'+ bg + '" stroke="'+ bc +'" stroke-width="2px" />'; svg += '<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill='+fc+";'>"; svg += text + "</text></svg>"; alert(svg); document.getElementById('Dragon').innerHTML += svg; return true; } function acceptArgs() { var bc = document.getElementById("select_bc"); bc = bc.options[bc.selectedIndex].value; var bg = document.getElementById("select_bg"); bg = bg.options[bg.selectedIndex].value; var fc = document.getElementById("select_fc"); fc = fc.options[fc.selectedIndex].value; var text = document.getElementById("text_in").value; closeForm(); drawIcon(bc, bg, fc, text); }
- 1 reply
-
- javascript
- css
-
(and 2 more)
Tagged with:
-
Всем привет. При клике (добавляю active к label) делает активными все элементы, а не текущий? Как быть? $(document).on('change', '.compare-control', function(){ var id = $(this).val(); var url = '/?action=DELETE_FROM_COMPARE_LIST&ajax_action=Y&id='+id; if ($(this).prop('checked')) { url = '/?action=ADD_TO_COMPARE_LIST&ajax_action=Y&id='+id; } $.get(url, function() { BX.onCustomEvent('OnCompareChange'); }); // здесь беда!!!при клике на элемент, делает элементы все активными, а не текущий. if($('.catalog-content-main-item-top-fav').hasClass('active')) { $('.catalog-content-main-item-top-fav').removeClass('active'); }else{ $('.catalog-content-main-item-top-fav').addClass("active"); } }); BX.addCustomEvent('onCatalogDeleteCompare', function(id) { $('.compare-control[value="'+id+'"]').prop('checked', false); }); Код html: <label class="catalog-content-main-item-top-fav <?= array_key_exists($arItem['ID'], $_SESSION["CATALOG_COMPARE_LIST"][5]['ITEMS'])?'active':''?>" > <input onclick="function f(e) { e.preventDefault();}" style="display: none" type="checkbox" value="<?=$arItem['ID'];?>" class="compare-control" <? if(isset($_SESSION['CATALOG_COMPARE_LIST']['5']['ITEMS'][$arItem['ID']])):?> checked="checked" <? endif;?>> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M12.2536 19.2043L12 19.055L11.7464 19.2043L5.28009 23.0103L6.73156 15.3278L6.78144 15.0638L6.58881 14.8765L1.09502 9.53481L8.50172 8.61114L8.7836 8.57598L8.89772 8.31586L12 1.24455L15.1023 8.31586L15.2164 8.57598L15.4983 8.61114L22.905 9.53481L17.4112 14.8765L17.2186 15.0638L17.2684 15.3278L18.7199 23.0103L12.2536 19.2043Z" fill="white" stroke="#E09B3D"/> </svg> </label> а этот код срабатывает только после перезагрузки страницы: <?= array_key_exists($arItem['ID'], $_SESSION["CATALOG_COMPARE_LIST"][5]['ITEMS'])?'active':''?>
- 3 replies
-
- bitrix
- javascript
-
(and 2 more)
Tagged with:
-
Пример сайта по разработке reactiq точка net Цена на разработку 70 000 рублей. Без дизайна и верстки, от вас нам нужен функционал на фреймворке Lavarel Нужно постараться уложиться в 20 дней по срокам. Работа по Сделке без риска. B и больше ни как. Основные моменты работы сайта: авторизация сайта через стим считывания апи через официальный сайт pubg Трейдов скинов и все остальное не будет! подключить систему оплат создание личного кабинета для пользователя. Есть полное ТЗ проекта, которое мы готовы упрощать на первом этапе.Готовы достойно оплачивать ваш труд! Пишите в телеграм @evgensalyah
-
Ищем талантливого программиста в игровой проектДля разработки игрового проекта требуются талантливые программисты.Отличное знание: PHP, JavaScript, PythonПреимуществом будет если когда-то работали с платформой steam и с голосовым мессенджером Discord.Вкратце о проекте: Будет разрабатываться площадка для проведения турниров по играм pubg, dota, cs go.Ищем программиста с руками. Не важно какой вы ориентации, вероисповедания и т.д. Нам от вас важен результат!Готовы достойно оплачивать ваш труд! Пишите в телеграм @evgensalyah
-
- php
- javascript
-
(and 3 more)
Tagged with:
-
https://youtu.be/7pr0x3elUzQ Буду признательна если поможете При наведении на блок он поворачивается под углом, при клике на блок - открывается сам блок на весь экран (плавно), при клике на лого - сворачивается открывшийся блок
-
Добрый день! Помогите разобраться с работой метода closest(). В приведенном примере https://jsfiddle.net/ymnjo3tc/ , я делаю все "по инструкции": беру дочерний элемент и проверяю наличие у него родительского при помощи данного метода. Но в ответ всегда ловлю один и тот-же Exception. Какие бы я не пробовал проверять элементы. В чем может быть проблема? Где я допускаю ошибку? Да и вообще, применим ли этот метод на практике? И в каких ситуациях?
-
Разрабатываю React/React Native приложения. С образцами моих некоммерческих работ вы можете ознакомиться по адресу: https://github.com/Roman-Onishchenko?tab=repositories Готов рассмотреть ваши предложения о разработке React/React Native приложений различной тематики и объема работ с частичной занятостью (до 30 рабочих часов в неделю). Мои контакты: skype - romanonishencko email - roman951t@gmail.com