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

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

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

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

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

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

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

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

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

Михаил Горячкин

  • 174
    вклад
  • 0
    вопросов
  • 155
    ответов
  • 58%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Почему createStore не видит редюсер?

    abaddon65
    Михаил Горячкин @abaddon65
    Ну во первых у вас не так написан импорт:
    import { calendarReducer } from "./calendarReducer/calendarReducer";

    В вашем случаи надо так:
    import calendarReducer from "./calendarReducer/calendarReducer";

    А во вторых надо не так:
    window.devToolsExtension ? window.devToolsExtension : f => f

    а так:
    const enhancers = window.devToolsExtension ? window.devToolsExtension() : f => f;

    Собственно там консоль все вам расскажет.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как с помощью Grid заставить блоки в колонке расположиться по своей высоте?

    abaddon65
    Михаил Горячкин @abaddon65
    Не много не понимаю почему бы вам не обернуть "чай" и "шоколад" в div, чтобы получилось, что-то вроде этого:
    демочка
    Правые блоки будут по высоте контента, а левый будет всегда тянуться за ними, если вдруг их суммарная высота превысит его.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Slick slider & FancyBox3?

    abaddon65
    Михаил Горячкин @abaddon65
    Что касается первого, если вы хотите, чтобы сам фансибокс указывал верное кол-во слайдов, то необходимо установить при вызове параметр:
    $('.slider').slick({
    infinite: false,
    });

    Тогда слайдер не будет делать клонов из слайдов для создания "бесконечной" ротации.
    А так вы можете тупо css - сом скрыть счетчик самого фансибокса:
    .fancybox-infobar{
    display: none;
    }
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как через css задать отдельные стили для тачскрина?

    abaddon65
    Михаил Горячкин @abaddon65
    На css вряд ли у вас со 100% вероятностью получится определить тип устройства. Так что js вам в помощь, есть кучка скриптов для определения устройств. Вот к примеру которым пользуюсь я mobile-detect. С помощью него ставьте класс и прописывайте для него любое поведение. Забыл, если поддержка всеми браузерами не так важна, то конечно можете попробовать CSS4 media query draft
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Ошибка при сборке проекта Gulp. Что делать?

    abaddon65
    Михаил Горячкин @abaddon65
    Да вот ваша ошибка:
    .pipe(gulp.dest("css"));
    .pipe(server.reload({stream: true}));

    Точку с запятой уберите после css:
    .pipe(gulp.dest("css")).pipe(server.reload({stream: true}));
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Есть ли смысл использовать Immutable вместе с React?

    abaddon65
    Михаил Горячкин @abaddon65
    Так и не цепляйтесь именно за Immutable.js, суть то в том, что данные должны быть неизменяемыми, а уж при помощи какой либы вы этого добьетесь зависит от вас, можете вообще просто Object.assign юзать (собственно object spread plugin этим и занимается) и тоже будете правы. Если проект большой, то я бы вам рекомендовал придерживаться парадигмы с Immutable данными, головной боли точно станет меньше. Насчет рендеринга само по себе это не какого прироста не даст, но благодаря тому, что вы получаете полный контроль над изменениями ваших объектов, вы можете грамотно использовать shouldComponentUpdate и вот тогда это может дать вам не хилый буст.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Проблема с chrome.storage.local.get, как вывести переменную?

    abaddon65
    Михаил Горячкин @abaddon65
    Ну так все потому что код то асинхронный. console.log(), который за пределами ф-и отрабатывает раньше чем вы получили значение в переменную. Вам тут обычный callback нужен или Promise ну или await.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как получить разницу между массивами?

    abaddon65
    Михаил Горячкин @abaddon65
    К примеру так:
    let result = array1.filter((item) => {
    	return !array2.find((test) => {return test.id === item.id});
    });
    console.log(result);
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как извлечь параметр items?

    abaddon65
    Михаил Горячкин @abaddon65
    Ну так к примеру:
    $test = json_decode($json_string);
    //Выведет 142342685
    echo $test->response->items[0];
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как правильно верстать android ui?

    abaddon65
    Михаил Горячкин @abaddon65
    Вот посмотрите:
    awesome-android-ui
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Событие OnBeforeUnload не поддерживается последними версиями Хрома и ФФ?

    abaddon65
    Михаил Горячкин @abaddon65
    Все как работало так и работает. Вот базовый пример из документации отлично отрабатывает в последних версиях chrome и firefox:
    window.onbeforeunload = function (evt) {
        var message = "Document 'foo' is not saved. You will lost the changes if you leave the page.";
        
        if (typeof evt == "undefined") {
            evt = window.event;
        }
        if (evt) {
            evt.returnValue = message;
        }
        return message;
    }
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как получить список URL адресов со страницы?

    abaddon65
    Михаил Горячкин @abaddon65
    Есть куча парсеров на php для dom элементов:
    Zend_Dom_Query
    phpquery
    CDom
    htmlSQL
    Выбирайте себе по вкусу.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как к карусели прикрутить дополнительные переключатели элементов?

    abaddon65
    Михаил Горячкин @abaddon65
    Читай документацию, там все написано. Вот пример:
    var owl = $('.owl-carousel');
    owl.owlCarousel();
    // Go to the next item
    $('.customNextBtn').click(function() {
        owl.trigger('next.owl.carousel');
    })

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

    abaddon65
    Михаил Горячкин @abaddon65
    Как это не было бы странно но через css. Вот в этой строке:
    .slide {
      height: 100%;
      transition: all 2s;
    }

    Поменять у свойства transition время продолжения анимации, на которое вам надо например так:
    .slide {
      height: 100%;
      transition: all 12s;
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как запретить включать анимацию wow.js при скролле вверх?

    abaddon65
    Михаил Горячкин @abaddon65
    Ну самый примитивный вариант выглядит так:
    Создаете у себя там класс в css:
    .visible {
      visibility: visible !important;
    }

    Потом дописываем убогий js, после вызова wow.init(), что-то типо того:
    var scroll = window.pageYOffset, array = [];
    wow.boxes.forEach(function (box) {
        let pos = $(box).position(), height = $(box).height();
        if (pos.top + height < scroll) {
            $(box).addClass("visible");
        } else {
            array.push(box);
        }
    });
    wow.boxes = array;

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

    abaddon65
    Михаил Горячкин @abaddon65
    Это просто пичаль! Вы посмотрите свой css, все траблы из-за этой вот строчки:
    .main-nav:hover .sub-menu {
        visibility: visible;
        opacity: 1;
    }

    Как раз тут и прописано, что подменю появляется, при наведении на весь блок. Вам надо убрать это правило и поставить например так:
    .menu-item:hover .sub-menu {
        visibility: visible;
        opacity: 1;
    }

    И будет вам счастье.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как скрыть выполнение скрипта при загрузке страницы?

    abaddon65
    Михаил Горячкин @abaddon65
    Ну например скройте изначально меню:
    .menu {
       visibility: hidden; 
    }

    А когда сайт загрузится, то применяйте свои классы и показывайте меню.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как создать документ для редактирования содержимого блока в MODX?

    abaddon65
    Михаил Горячкин @abaddon65
    Ну тогда идете во вкладку "Элементы", там выбираете "Дополнительные поля", создаете новое, обзываете его например "zeleboba", во вкладке "Параметры ввода" выбираете "Текстовый редактор", во вкладке "Доступно для шаблонов" отмечаете свой и все это дело сохраняете. А потом лезете в свою страницу и во вкладке "Дополнительные поля" видите ваше новое поле. В шаблоне поле выводится [[*zeleboba]] . Ну и по тому же принципу создаете остальные блоки.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как сделать плавное затемнение и появление текста при наведении?

    abaddon65
    Михаил Горячкин @abaddon65
    Вот, держите простой пример.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Коротенький гайд по натяжке вёрстки на ModX?

    abaddon65
    Михаил Горячкин @abaddon65
    Да бога ради, я вообще не встречал более удобной системы для натяжки своего диза на движок, чем есть в modx-се. Так что делайте все как обычно, хоть с gulp, хоть с webpack-ком (тут пишу про то с чем сам работаю). Весь процесс выглядит примерно так:
    1) Кидаете финальный билд фронта на ftp (обычно это папка assets/templates/тут название вашего шаблона);
    2) Далее в админке создаете шаблон, или открываете стандартный, копируете туда свою разметку.
    3) Правите пути к js-сам, картинкам и css-сам.
    4) У тут просто открываете страницу с этим шаблоном и радуетесь тому на сколько вы красава).

    Ну а там конечно уже разбиваете шаблон на чанки, а где предполагается вывод динамического контента узайте сниппеты, коих много на любой вкус в репозитории, ну или пишете свои. Ну что такое сниппеты и чанки сами прочитаете.
    Ответ написан более трёх лет назад
    8 комментариев
    8 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Следующие →
Самые активные сегодня
  • mayton2019
    • 17 ответов
    • 0 вопросов
  • FOUREX
    • 9 ответов
    • 1 вопрос
  • vabka
    Василий Банников
    • 8 ответов
    • 0 вопросов
  • DF Wastaken
    • 5 ответов
    • 1 вопрос
  • jenki
    Станислав Бодро́в
    • 5 ответов
    • 0 вопросов
  • Rsa97
    Rsa97
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

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

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