Задать вопрос
  • Бесплатные шаблоны Blade + Bootstrap 4 уже готовые для Laravel - где взять?

    @Kostik_1993
    Web Developer
    Нигде. Нигде. Нигде
    Это бред. Это вам не WP
    Ответ написан
    Комментировать
  • Как запустить сайт php c Composer?

    samoilenkoevgeniy
    @samoilenkoevgeniy
    Lead Full-Stack Web Developer
    из папки проекта(там же где находится файл composer.json) вполнить команду:
    composer install
    Ответ написан
    7 комментариев
  • Как сделать обтекаемый текст внутри круга?

    LenovoId
    @LenovoId
    svg, css,js
    Тыщу пардонов Сэр - а в каком конкретно браузере не поддерживается SVG ?
    Только Netscape Navigator который подох давно не счёт
    SVG хавает даже IE8
    Ответ написан
    3 комментария
  • Табы на js, как правильно?

    Самое первое - отказаться от неоправданного изменения html. Все эти `data-index` - признак плохого кода. Любой блок должен, по возможности, получаться в JS только один раз, записываться в кеш и работать далее с блоком именно как с JS инстансом.

    Второе - разделить глобальное управление и каждый таб в отдельности. Каждый логический блок дожлен быть инстансом класса - тогда значительно легче с этим орудовать и дебажить.

    Третье - изменения html максимально выносим в отдельный метод.

    Ну и вообще - все действия разбить на блоки в виде методов.

    Как разультат:

    const TabItemSelector = '.pageNav__tabItem';
    const ContentItemSelector = '.pageNav__contentItem';
    
    class TabsManager {
      constructor(navNode){
        this.tabs = [];
        this.activeTab = null;
    
        this.initFromHtml(navNode);
        this.activateTab(this.tabs[0]);
      }
    
      initFromHtml (navNode) {
        const headers  = navNode.querySelectorAll(TabItemSelector);
        const contents = navNode.querySelectorAll(ContentItemSelector);
    
        for (var i = 0; i < headers.length; i++) {
            this.registerTab(headers[i], contents[i]);
        }
      }
    
      registerTab (header, content) {
        const tab = new TabItem(header, content);
        tab.onActivate(() => this.activateTab(tab));
        this.tabs.push(tab);
      }
      
      activateTab (tabItem) {
        if (this.activeTab) {
            this.activeTab.setActive(false);
        }
    
        this.activeTab = tabItem;
        this.activeTab.setActive(true);
      }
      
    }
    
    const ActiveTabHeaderClass = 'pageNav__tabItem--active';
    const ActiveTabContentClass = 'pageNav__contentItem--active';
    
    class TabItem {
        constructor (header, content) {
            this.header  = header;
            this.content = content;
        }
        onActivate (action) {
            this.header.addEventListener('click', () => action(this));
        }
        setActive(value) {
            this.header.classList.toggle(ActiveTabHeaderClass, value);
            this.content.classList.toggle(ActiveTabContentClass, value);
        }
    }
    
    document.addEventListener('DOMContentLoaded', ()=>{
      let tabs = new TabsManager(document.querySelector('.pageNav'));
    })


    Самое сомнительное в этом коде - это, конечно, TabsManager.initFromHtml, где создается взаимосвязь между headers и contents (к примеру, что будет если заголовков табов будет больше, чем детей?). Но это получается из-за верстки.
    Ответ написан
  • Какой алгоритм подойдет для описания полета насекомого?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Можно сделать цепочку преследования: к случайной точке тянется одна, к ней другая, и т.д., а последняя – муха.

    Очередную точку ставить на плоскости случайно, в любом месте внутри допустимой области. Эта точка – цель, к которой стремится следующая, невидимая точка: каждый следующий кадр её координаты изменяются на k * векторИзТекущегоПоложения-в-Цель:
    x = x + k * (xTarget - x);
    y = y + k * (yTarget - y);

    Так «преследователь» замедляется, по мере приближения к цели, никогда её не достигая.

    Эта невидимая точка – не одна. К ней, как к цели, стремится следующая. К той ещё одна. Наконец, сама муха по этому закону стремится к хвосту этой цепи - очередной точке.

    Чем больше звеньев в такой цепи, тем плавнее получается кривая. При приближении мухи к цели ближе, чем на D, генерится следующая случайная цель.

    Сделал рабочий пример.

    Можно поменять алгоритм и сделать, скажем, линейную скорость постоянной. Или случайно варьировать параметры k и D – от этого поменяется скорость и траектория от плавной ближе к ломаной.
    Ответ написан
    Комментировать
  • Какую панель управления хостом для Raspbian выбрать?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    из-за одного сайта вообще смысла нет накатывать никакую панель. Панели нужны когда вы их там пачками поднимаете и управляете.
    Ответ написан
    Комментировать
  • Как сделать интерактивную систему бронирование столов?

    https://d3js.org/
    Логику реализовать при помощи головы и немного рук и жопы.
    Ответ написан
    Комментировать
  • Должен ли Junior Front End знать всё?

    kivsiak
    @kivsiak
    software engineer
    Вот скажи зачем ты работодателям такой красивый не напряжный ничего не умеющий да еще желающий нормальных денег?

    Перечитай еще раз что ты написал. И иди учись, подымай скилы, напряжно въебывай за копейки или бесплатно на фрилансе или опенсорс проектах пока не будешь соответствовать требованиям.
    Ответ написан
    Комментировать
  • Как сделать такой паралакс?

    Вот вам простой пример чтобы посмотреть логику работы.
    HTML:
    <div class="wrapper">
      <section class="page page--one">
        
      </section>
      <section class="page page--two">
        
      </section>
      <section class="page page--free">
        
      </section>
    </div>

    CSS:
    body, html {
      width: 100%;
      height: 100%;
    }
    
    body {
      overflow: hidden;
    }
    
    .wrapper {
      width: 100%;
      height: 100%;
      
      [class*=page--] {
        position: absolute;
        left: 0;
        height: 100%;
        width: 100%;
        transform: translateY(100%);
        transition: transform 2s;
        
        &:first-child {
          position: relative;
          transform: translateY(0);
        }
        
        &.active {
          transform: translateY(-100%);
        }
      }
      
      .page--one {
        background-color: red;
      }
      
      .page--two {
        background-color: green;
      }
      
      .page--free {
        background-color: blue;
      }
    }

    JS:
    (function (w, d) {
      var blocks = d.querySelectorAll('.page'), 
          ln = blocks.length,
          index = 0, 
          stop = false, 
          direction,
          next,
          curr;
      
      $(window).on("mousewheel DOMMouseScroll", function(event) {
      	event.preventDefault();
        var evt = event.originalEvent ? event.originalEvent : event;
        if (!stop) {
        	stop = true;
            direction = evt.detail ? evt.detail*(-40) : evt.wheelDelta;
            if (direction < 0) {
                index + 1 < ln ? index++ : "";
      			next = blocks[index];
                next ? next.classList.add('active') : "";
            } else {
                curr = blocks[index];
                if (curr) {
            	curr.classList.remove('active');
            	index > 0 ? index-- : "";  
                }
            }
            setTimeout(function () {
                stop = false;
            }, 1000);
         }
      });
    }(window, document));

    Только не надо принимать, что так и должно быть, это всего лишь простой пример, чтобы уеснить технологию, он очень топорный и простой и написан за 15 минут.

    Пример
    Ответ написан
    Комментировать
  • Где используются шаблоны HTML для сайтов?

    sabramovskikh
    @sabramovskikh
    эмм. На сайтах видимо где нужна адаптивность
    Ответ написан
    Комментировать
  • Как написать правильно регулярку?

    if (!empty($_GET)) {
      header("HTTP/1.0 404 Not Found");
       include $_SERVER['DOCUMENT_ROOT'].'/404.php';
       exit();
    }
    Ответ написан
    Комментировать
  • Как с помощью РВ найти строку по слову в ней?

    DevMan
    @DevMan
    https://regex101.com/r/rF0pS6/1

    несколько секунд ломал голову, думая что значит "пэбе" в заголовке))
    Ответ написан
    Комментировать
  • Почему некоторые стили не применяются при загрузке на сервер?

    hedint
    @hedint
    Senior front-end developer
    Ну так что мешает разобраться?
    Открываем тестовый сайт, смотрим через Web Inspector, какие стили применяются к ссылке (позиция в css файле этого стиля, его написание). Копируем нужный css селектор, который используется, идем на боевой сервер, Открываем там ресурсы через Web Inspector, ищем по css файлу этот селектор.
    Далее действуем в зависимости от того, нашелся ли исходный селектор в css файле (далее по обстоятельствам придумываем еще проверки, которые помогут добраться до истины)
    Ответ написан
    1 комментарий
  • Как работать с сайтом после оптимизация HTML/CSS/JS?

    swanrnd
    @swanrnd
    Издатель HTML5 игр
    Ну вообще HTML должен быть нормальным, а CMS должна сжимать HTML и выводить нормальные страницы.
    Ответ написан
    Комментировать
  • Какую cms использует toster.ru?

    hell0w0rd
    @hell0w0rd
    Просто разработчик
    joomla
    Ответ написан
    Комментировать
  • Клик на блоке внутри блока вызывает event блока родителя, как избежать?

    jakulov
    @jakulov
    Думаю через stopPropagation:

    $('#child').on('event', function(event){
     event.stopPropagation(); // запрещает дальнейщую передачу события
    // обработка события
    });
    Ответ написан
    1 комментарий
  • Как упростить разработку верстальщику/фронтэндщику в веб-студии?

    rumkin
    @rumkin
    БЭМ-это css-реализация теневого дерева (Shadow DOM), если присмотреться внимателей. Так, что лучше использовать его сейчас, до того, как появятся полноценные веб-компоненты. БЭМ в чистом виде мне не очень нравится, поэтому я использую собственную модификацию, плюс, лучше использовать для этого SASS/LESS так как селекторы получаются достаточно пухлыми.
    С версткой смотрите в сторону jade(js) или slim(ruby), они позволяют переиспользовать код и накопить n-вариантов решения каждой задачи, потом будете просто подставлять и допиливать, а писать только новое и скрипт.
    Изучите более серьезные проекты (angular, amber), там сможете почерпнуть для себя свежие веяния в UI-разработке. Тот этап, на котором вы сейчас находитесь подразумевает изучение максимального количества вариантов, скорее всего нужный родится сам в каше знаний.
    Когда зарабатываешься, то раздражать начинает, каждая запятая в коде и худжший способ разобраться с этим — попытаться навести порядок в работе — больше отдыхайте, давайте мозгу соскучиться по любимому делу, тогда он будет работать более эффективно. Мне смена языка программирования очень помогает найти новые способы решения, казалось бы неразрешимых проблем (буквально сегодня закрыл целых 3 задачи, которые не мог решить по отдельности очень долго), лишь благодаря тому, что переключился с js на ruby.
    Обратите внимание на шаблоны проектирования вообще. Начинайте писать код на бумаге, проектирование помогает избежать художественных поисков в процессе, а значит делает ваш код подчинённым логике, а не эстетике, как следствие удовлетворенность результатом увеливается в среднем на 100—150 %, по личным ощущениям, так что у вас цифры могут отличаться.

    P.S. Сейчас занимаюсь продуктом для UI-разработчиков, в комментариях опишите, с какими трудностями/рутинными задачами и т.п. сталкиваетесь вы каждый день. Возможно, у меня получится сделать и вашу работу в разы комфортнее.
    Ответ написан
    Комментировать