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

    @WebNerd Автор вопроса
    It's time to hunt
    Ответ оказался не так очевиден, как казалось. Везде pointermove работал плавно, кроме firefox. Это же касается события scroll. Суть в том, что firefox, в отличии от других браузеров, не успевает отрисовывать фреймы за движением мышки пользователя. Потому решение оказалось банально простое: реализовать тротлинг или же использовать requestAnimationFrame().

    Статья, которая помогла решить проблему
    Ответ написан
    Комментировать
  • Как поменять элемент в массиве в PHP?

    @WebNerd Автор вопроса
    It's time to hunt
    Решение нашел:
    elseif ($method == 'PUT'){
         $input = json_decode(file_get_contents("php://input"), true);
        
         $dataPost = json_decode($data_json, true);
         
         $idPost = $input['mineId'];
         
         $replacements = array($idPost - 1 => $input);
         
         $newInput = array_replace($dataPost['data'], $replacements);
         $obj = (object) array('data' => $newInput);
    
         file_put_contents('data.json', json_encode($obj));
         
         $file = file_get_contents('data.json'); 
         
         echo $file;
    
         unset($file);
         unset($dataPost);
    Ответ написан
  • Как сделать так, чтобы контент не растягивал блок за экран?

    @WebNerd Автор вопроса
    It's time to hunt
    Сам нашел ответ. Position absolute вырывал из потока белый блок, потому при переполнении и центровки, он вылетал за границу верхнего окна. Решилась проблема легко. Заместо устаревшего absolute, использовать на родителя display: flex, а на потомка margin: auto. Возможно, можно и сделать с помощью justify content, align items
    Ответ написан
    Комментировать
  • Как реализовать навигацию со списком, если между элементами логотип?

    @WebNerd Автор вопроса
    It's time to hunt
    Решил вопрос следующим образом:
    <header class="header">
        <nav class="header__nav nav">
          <div class="container nav__container">
            <a href="#" class="nav__logo logo"><img src="img/main/logo.svg" alt="Логотип" width="137" height="70"></a>
            <ul class="nav__list">
              <li class="nav__item">
                <a href="#" class="nav__link">Магазин</a>
              </li>
              <li class="nav__item">
                <a href="#" class="nav__link">Новости</a>
              </li>
              <li class="nav__item">
                <a href="#" class="nav__link">Контакты</a>
              </li>
              <li class="nav__item">
                <a href="#" class="nav__link">Войти</a>
              </li>
            </ul>
          </div>
        </nav>
      </header>


    И Css
    .nav {
      position: relative;
      min-height: 55px;
    
      background-color: #fff;
    }
    
    .nav__logo {
      position: absolute;
      left: 50%;
    
      transform: translateX(-50%);
    }
    
    .nav__list {
      display: flex; 
      flex-wrap: wrap;
    }
    
    .nav__item {
      width: 150px;
      margin-right: 90px;
      text-align: center;
    }
    
    .nav__item:nth-child(3) {
      margin-left: 240px;
    }
    
    .nav__item:nth-child(4), 
    .nav__item:last-child {
      margin-right: 0;
    }
    
    .nav__link {
      display: block;
      padding: 17px 26px;
    }


    Таким образом, 3 элемент всегда дает отступ от логотипа и даже если появляются новые элементы, они переносятся, не нарушая каскад. Сайт с фиксированными размерами, без адаптации, потому без проблем вроде как
    Ответ написан