Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Андрей

FE
  • 15
    вклад
  • 3
    вопроса
  • 32
    ответа
  • 28%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Отдельные элементы на странице?

    Андрей @kvaak
    FE
    Вполне себе можно. Мы таким образом постепенно переводим большое приложение c mvc на api based на реакте. Только, скорее, это не отдельные реакт-приложения, а просто несколько разных точек входа одного. Вы же не заводите реакт каждый раз. Просто реакт-дом зарендерит чтото в несколько разных дивов. Почему бы и нет. В конце концов, они все дружно смотрят в 1 редакс-стор и вполне себе могут общаться через него. Когда перевели страницу на реакт целиком - объединяем в одну точку входа. Никаких проблем, в плане производительности в том числе, пока что замечено не было.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать анимацию стирания кода?

    Андрей @kvaak
    FE
    Реально но сложно.
    Смотреть стоит в сторону технологии webGl, или, как вариант - вставить видео на места кнопок, которые, очевидно, надо заранее подготовить.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как вписать картинку в контейнер?

    Андрей @kvaak
    FE
    https://codepen.io/avkvak/pen/yprprm
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Jscrollpane, не работают всплывающие подсказки?

    Андрей @kvaak
    FE
    Может быть плагин как то копирует разметку и выбранный селектор становится неактуальным? Попробуйте так
    $(document).on('hover', '.help_p', function(e){
    if (e.type === "mouseenter") {
            $('#tipDiv').css({ "visibility":"visible"});
        } else {
           $('#tipDiv').css({ "visibility":"hidden"});
        }
    });
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что важнее для сео: 100% в гуглспид или соотношение кода к тексту?

    Андрей @kvaak
    FE
    Мы съедаем эту рыбку так, правда с галпом, а не грунтом
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как переопределить функцию внутри другой функции javascript?

    Андрей @kvaak
    FE
    Для начала, Вам нечего наследовать, go доступен только внутри функции, которая, похоже, подразумевалась как конструктор.
    var handler = new Handler();
    handler.go();

    вызовет так же ошибку, что go is not a function. Чтобы сделать методы публичными, пользуйтесь внутри конструктора ключевым случаем this
    this.go = function () {}

    Наследовать же можно так
    Handler2.prototype = Object.create(Handler.prototype);
    Handler2.prototype.constructor = Handler;

    А подробнее про наследование лучше почитать тут
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Почему рендеринг страницы начинается с середины?

    Андрей @kvaak
    FE
    Рендеринг всегда начинается сверху. В Вашем случае просто сначала картинки еще не загружены, и контейнеры, обрамляющие их, схлопнуты, потом, когда картинки подгружаются, страница перерисовывается браузером уже с открытыми и заполненными контейнерами.
    Вам поможет свойство min-height для контейнеров картинок, может быть какой нибудь прелоадер добавить.
    Лучше всего подобные проблемы рассматривать не в инкогнито, а во вкладке network -> slow 3g панели разработчика со сброшенным кэшем https://cl.ly/0g3O1j2t0m45
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как писать правильный оптимизированный CSS?

    Андрей @kvaak
    FE
    это не совсем одно и то же. Свойство font неизменно изменит все 3 атрибута, в то время как font-weight, font-size и font-family изменят по одному, не повлияв на другие 2. То есть если вам нужно, грубо говоря, инициализировать отображение, стоит начать со свойства font, но если в какой-то момент возникает необходимость переопределить значение одного лишь из свойств (модификатор какой), то тогда логичнее использовать свойства по отдельности.

    В таком случае, если возникнет необходимость, скажем, изменить font-family везде, Вам не придется шарахаться по коду и искать все вхождения этого шрифта, а изменить его лишь в 1 месте. Лично я практически всегда использую второй вариант, пара лишних байт сайт не утяжелят.
    Ответ написан более трёх лет назад
    9 комментариев
    9 комментариев
  • Как посчитать и вывести в лог количество элементов?

    Андрей @kvaak
    FE
    const domElements = {};
    
    function addToCounter (elem) {
      domElements[elem.tagName] = typeof domElements[elem.tagName] === 'undefined' ? 1 : domElements[elem.tagName] + 1
    }
    
    function scanDOM (elem) {
    	if (elem.hasChildNodes()) {
    		for(let i = 0; i < elem.childNodes.length; i++) {
    			let child = elem.childNodes[i];
    			if (child.nodeType == 1) {
            addToCounter(child);
    				scanDOM(child);
    			}
    		}
    	} else {
        addToCounter(elem);
        
        Object.keys(domElements).forEach((val) => {
          console.log(`There are ${domElements[val]} elements with ${val} tag name `);
        })
      }
    }
    
    let body = document.querySelector('body');
    
    scanDOM(body);
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как создать блок который будет сжиматься одновременно по гориз и верт?

    Андрей @kvaak
    FE
    вопрос не очень понятен, но если Вы хотите достичь того же поведения у div'a, что и у Вашего img, то
    div{
    display: inline;
    height: auto;
    width: 100px;
    }

    но я не уверен, что Вам это надо.

    Сжатия существуют.
    Вероятно, Вы просто загружаете картинку шириной в 1920px на экран мобильного в том числе, что может не понравиться гуглу
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Стоит ли использовать js для адаптивности?

    Андрей @kvaak
    FE
    Кнопка гамбургер посредством цсс возможна только с присутствием в разметке чекбокса, это, как по мне, неправильно, несемантично и костыльно. JS наше все
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Слайдер slick в 2 ряда с variableWidth, реально ли?

    Андрей @kvaak
    FE
    Я бы завел просто 2 слайдера, отключив возможность управления например для второго, и вызывал бы ему события в зависимости от произошедших событий первого. Должно взлететь, правда, за исключением жестов свайпа, их лучше вырубить, если использовать такой чудо-костыль

    Либо еще 1 вариант, убрать variableWidth, а значение slidesPerRow выставить на 2. И оборачивать 2 квадратных блока, также как 1 прямоугольный, в 1 слайд
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Почему $(this).css() работает, а $(this).addClass() - нет?

    Андрей @kvaak
    FE
    Если добавляет класс, то в jquery все в порядке, проверьте через панель разработчика (F12 or CMD+SHIFT+I), что, скорее всего, есть более приоритетное значение бэкграунда для другого класса этого же элемента, либо он где-то переопределен, либо файл цсс, содержащий это свойство, не подключен. В общем, ищите проблему в стилях
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Можно ли настроить автоформатирование для LESS(css) в редакторе кода?

    Андрей @kvaak
    FE
    можно вместо CTRL+K+D попробовать поюзать Prettier
    Я вот в восторге от него, а как побочный эффект - скорее всего решит проблему с переносом
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать плавающий элемент, который появляется при скролинге вниз?

    Андрей @kvaak
    FE
    var yourButton = $('Ваша кнопка');
    var lastScrollTop = 0;
    $(window).scroll(function(){
       var st = $(this).scrollTop();
       st > lastScrollTop ? yourButton.hide() : yourButton.show();
       lastScrollTop = st;
    });
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как можно по дефолту проскролить содержимое обертки до конца?

    Андрей @kvaak
    FE
    Скроллинг средствами цсс невозможен. Только js
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как сделать подвал в низу страницы при динамическом рендеринге?

    Андрей @kvaak
    FE
    Футер поместите в main, уберите цсс, что написан у Вас, и достаточно
    <body>
        <div class="main">
            <div class="content">
            </div>
            <div class="table">
                 Этот див рендерится динамически
            </div>
             <div class="footer">
             </div>
        </div>
    </body>

    .main {
       min-height: 100vh;
       display: flex;
       flex-direction: column;
       justify-content: space-between;
    }


    .content и .table по хорошему тоже лучше обернуть в 1 див, но не обязательно
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Можно ли в gulp запускать одновлеменно несколько tasks?

    Андрей @kvaak
    FE
    gulp.task('default', ['css', 'browser-sync']);

    И заводить в консоли просто gulp
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как убрать двойной скрол и пустое место из-за длины абс. спозиционированного меню?

    Андрей @kvaak
    FE
    Пройдите в меню:
    Лампы -> Красота и здоровье
    Что Вы видите?) Правильно, нереально большой список итемов, из-за которых и все проблемы.
    Очень рекомендую добавить максимальную высоту списков с overflow: auto;
    Иначе, даже выбитому из потока парню надо куда-то вмещаться, чтобы его юзверь-то увидел
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как лучше всего переключить несколько радио кнопок в одно положение?

    Андрей @kvaak
    FE
    вот этот js переключит все кнопки, как хотели
    $( 'input[name="alloff"]:radio' ).on('change', function(e) {
       $('input[name^="Aktiv"][value=' + $(this).attr('value') + ']').prop('checked', true);
    });


    Однако я не пойму логики последнего предложения. Зачем менять value выбранной кнопки на 0? По сути Вы этим действием полностью лишаете смысла сами радиокнопки. То есть что бы юзер не выбрал - он всегда выбирает 0. Бред
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • Drno
    • 16 ответов
    • 0 вопросов
  • vovka3003
    Владимир Шаблий
    • 5 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 5 ответов
    • 0 вопросов
  • alexalexes
    • 4 ответа
    • 0 вопросов
  • sergey-gornostaev
    Сергей Горностаев
    • 4 ответа
    • 0 вопросов
  • noder_ss
    Noder SS
    • 1 ответ
    • 3 вопроса
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации