Задать вопрос
Ответы пользователя по тегу CSS
  • Как при движении мыши(mousemove) сделать плавную карусель, которая передвигалась бы за мышкой?

    TMProject
    @TMProject
    Frontend developer React/Redux
    В вашем коде, чтобы создать плавный переход, необходимо добавить CSS свойство "transition" для элемента, который вы двигаете, то есть для "menuList". Например, можно добавить "transition: transform 0.2s ease-out" для плавного перехода.

    Также можно добавить более сложные эффекты перехода, например, использовать "cubic-bezier" или "ease-in-out" вместо "ease-out", чтобы создать более плавный эффект.

    Например, измененный код может выглядеть так:
    const onMouseDown = (evt) => {
        let posX = evt.pageX;
        let current = 0;
    
        const onMouseMove = (evt) => {
            if (evt.pageX < posX) {
                posX = evt.pageX;
                current -= 5;
            } else {
                posX = evt.pageX;
                current += 5;
            }
    
            menuList.style.transform = `translateX(${current}px)`;
        };
    
        menuList.addEventListener('pointermove', onMouseMove);
        menuList.style.transition = 'transform 0.2s ease-out';
    };
    
    menuList.addEventListener('pointerdown', onMouseDown);

    Это создаст плавный переход, когда вы будете двигать мышь над элементом "menuList". Вы можете настроить значение свойства "transition-duration" и "transition-timing-function" для создания нужного эффекта перехода.
    Ответ написан
  • Почему на айфоне происходит скролл, а на андроиде нет?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Проблема скролла на мобильных устройствах может быть связана с различными факторами, включая размер экрана, устройства ввода и настройки браузера. На iOS и Android используются разные движки браузера, поэтому могут возникать различия в поведении скролла на разных устройствах.

    Однако, в представленных стилях есть свойство overflow: auto;, которое определяет, как будет обрабатываться содержимое, выходящее за пределы элемента, к которому это свойство применено. Если это свойство установлено на auto, то браузер самостоятельно определяет, должно ли появляться полоса прокрутки или нет. Это может привести к различному поведению скролла на разных устройствах.

    Если вы хотите, чтобы на всех устройствах отображалась полоса прокрутки, можно установить свойство overflow: scroll; вместо overflow: auto;. Однако, имейте в виду, что это может привести к отображению нескольких полос прокрутки на устройствах с маленькими экранами, что может быть неудобно для пользователей.

    Кроме того, если у вас есть контент, который выходит за пределы экрана, вы можете добавить height: 100%; в стили для элемента html, чтобы убедиться, что он занимает всю доступную высоту экрана.
    Ответ написан
    Комментировать
  • Как лучше скрыть элемент в react?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Я предпочел бы 2 вариант.
    только единственное, что бы сделал это отдельный хук, который бы возвращал ширину экрана и использовал бы в компоненте. Передача пропсом здесь не нужна.
    Если сравнивать с css вариантом, то тут выгода на лицо, меньше медиа запросов и логика компонента упакована в одном месте. Например компонент делает какие-то вычисления, то смысл их делать если ширина экрана не та, следовательно нужно меньше ресурсов на рендер.
    Ответ написан
    6 комментариев