• Как сделать анимацию трансформирующую один элемент в другой?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Является ли желтая квадратная форма в конце анимации видоизмененной кнопкой или же это совершенно другой элемент разметки?

    По смыслу - это другой элемент. Если мы говорим про более-менее компонентный подход к верстке, то это должно быть очевидно. Кнопка - один компонент. Всплывающее окошко - другой компонент. Набросал небольшую заготовку:


    С такими анимациями можно долго играться, самое главное - проверить в конечном итоге кроссбраузерность. А то в хроме и FF работает, а в каком-нибудь IE всякое может случиться.

    P.S.: Но в целом - я голосую за реализацию таких вещей целиком на JS. Практика показывает, что в проектах с такими анимациями очень быстро собирается большое количество одновременно анимирующихся значений у большого количества элементов, которые нужно синхронизировать между собой. На CSS голова лопнет все это делать. И да, чем больше всего меняется в CSS-анимациях в единицу времени, тем выше шанс найти какой-нибудь редкий баг и долго ломать себе голову в поисках проблемы. Лучше уж взять какую-нибудь библиотеку вроде anime.js или любимый многими GSAP и использовать их.
    Ответ написан
    Комментировать
  • Как сделать и работать с краткими ссылками?

    @gracer
    Через htaccess с помощью регулярных выражений перенаправляем урлы на свой php скрипт(например, index.php), в скрипте уже разруливаем куда надо.
    Погуглите htaccess mod_rewrite.
    Ответ написан
    Комментировать
  • Законодательство какой юрисдикции должен соблюдать сайт, с юзер контентом?

    Jump
    @Jump
    Системный администратор со стажем.
    Законодательство какой юрисдикции должен соблюдать сайт, с юзер контентом?
    Вопрос некорректный.
    Законодательство это свод законов. законодательство не может быть "какой то юрисдикции". Вот законодательство какой-то страны вполне может.
    Юрисдикция - специализация конкретного судебного органа, определяет с какими делами может работать этот самый судебный орган.

    И самое главное - сайт не может соблюдать законодательство, или не соблюдать.
    Вот ваш холодильник, или стиральная машина может соблюдать закон? Точно так же и с сайтом.
    Закон может соблюдать или не соблюдать юридическое или физическое лицо, коим сайт не является.

    Если вопрос в том, законы каких стран должен соблюдать владелец сайта, то ответ будет таким - те, которые сочтет нужным.
    Поясню - во всех странах разные законы, и зачастую они противоречат друг другу.
    Поэтому соблюдать их все попросту невозможно.
    В итоге владелец выбирает законы каких стран ему соблюдать выгоднее - например он будет соблюдать законы страны A потому что он там живет, и за несоблюдение его могут посадить, а так же законы страны Б потому что поьзователи этой страны приносят ему больше всего дохода, и ему неохота этого дохода лишаться.
    А законы страны Г он соблюдать не будет, потому что эта страна никак наказать его не может.
    Вот и все.
    Ответ написан
    6 комментариев
  • Нужно вставить div через каждые 4 блок, но почему вставляет по своему?

    proudmore
    @proudmore
    Для разбиения массива на части воспользуйтесь функцией array_chunk, и выводите поблочно.
    Ответ написан
    1 комментарий
  • Какие курсы стоит пройти?

    @pacman123
    fullstack html developer
    Вопрос этот задается раз в неделю стабильно. Поиском научитесь пользоваться для начала, этот навык вам точно пригодится.
    Если по существу, курсы это трата времени. Есть мануалы и техдокументация.
    Если хотите с чего-то начать, пройдите базу на htmlacademy, потом перечитайте webref.
    И главное, как тут кто-то сказал - 20% теории и 80% практики.
    Ответ написан
    1 комментарий
  • Vue cli + mongoose не дружат? Или webpack виноват?

    @SeaBreeze876
    Front-end разработчик
    mongoose это серверная библиотека для работы с монго, она не предназначена для браузера
    https://mongoosejs.com/docs/browser.html
    Ответ написан
    Комментировать
  • Пирамида из чисел for на js. Как оно работает?

    Уберите все лишнее, расставьте отступы и скобки, напишите код красиво и станет легче понять:

    for (let i = 1; i < 20; i++) {
      for (let n = 1; n < i; n++) {
        document.write(n); 
      }
      document.write('')
    }
    Ответ написан
    Комментировать
  • Почему могут не работать CSS медиа запросы под определенные разрешения?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Вот посмотрите на ваши интервалы (все как в школе ;) ).
    В перекрывающихся интервалах побеждает то свойство, которое написано последним.
    5bd2cd1f29a38847621645.png
    Ответ написан
    Комментировать
  • Сколько времени уделять на общение с клиентом? Как поддерживать связь?

    Jump
    @Jump
    Системный администратор со стажем.
    Как вы строите общение с клиентом?
    Как мне удобно. В каждом конкретном случае.

    Есть ли пункт в договоре пункт сколько уделяется времени на клиента?
    Нет конечно, что за чушь.

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

    YumeReaver
    @YumeReaver
    Бургомистр
    Очень интересный вопрос!
    Почему не отображается полная версия - понятно. Медиа запросы формируют CSS в зависимости от ширины экрана, а даже с поставленной галочкой "Десктоп версия" ширина не меняется.
    Нашел принцип работы фичи.
    Вкратце, меняется user-agent request header.
    Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19
    
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19

    Сверху какой был, снизу какой стал. Парсинг user-agent с detect.js. Если !mobile, то вручную форсим ширину экрана как для десктопа.
    Очень костыль!

    Еще попробуйте поиграть с cookie view-mode это:
    var viewMode = getCookie("view-mode");
    if(viewMode == "desktop"){
        viewport.setAttribute('content', 'width=1024');
    }else if (viewMode == "mobile"){
        viewport.setAttribute('content', 'width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no');
    }
    Ответ написан
    Комментировать
  • JSON - есть ли разница между {'num': 1} и {num: 1}? Как лучше писать?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Нет разницы - оба варианта некорректные, таких JSON'ов не бывает.

    Конечно, на самом деле вы имели в виду кое-что другое, но... учитесь задавать вопросы.
    Ответ написан
    10 комментариев
  • Как реализовать подгонку размера шрифта?

    @SergeiB
    Вместо rem использовать vw. Читайте Viewport Sized Typography, Fluid Typography и др. подобные статьи. Для задания минимального размера шрифта можно писать так:
    font-size: calc(12px + любое значение в vw); // размер шрифта никогда не опустится ниже указанных 12px
    Ответ написан
    Комментировать
  • Как отрефакторить такой код?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Общую часть похожих кусков кода превращаем в функцию, а то, чем они различаются, будем передавать в эту функцию в качестве параметров:

    [
      [   'region_id',   'regionName' ],
      [ 'district_id', 'districtName' ],
      [     'area_id',     'areaName' ],
      [     'city_id',     'cityName' ],
      [    'place_id',     'cityName' ],
      [        'name',   'streetName' ],
    ].forEach(([ del, search ]) => {
      if (this.tableParam[del]) {
        delete this.tableParam[del];
        this.searchForm.get(search).patchValue(null);
      }
    });
    Ответ написан
    5 комментариев
  • На чем зарабатывает Quora, toster или подобные сайты?

    shmatuan
    @shmatuan
    8 year of Web, 5 years of Vue
    Можно просто выключить адблок и увидеть ответ
    5bd0447166cd2277435374.png
    Ответ написан
    Комментировать
  • Разработчики, вы больше думаете, чем пишете, или наоборот?

    Stalker_RED
    @Stalker_RED
    В режиме "продумал, написал и заработало", на сам код уходит 10-20%% времени. Остальное - разобраться в уже существующем коде, в доках, погуглить, подумать, обсудить с коллегами или начальством.

    В режиме отладки печатается и кликается больше, но это все в прод не попадает же. Зачастую после поиска какого-то бага и написания кучи "одноразовых тестов" в коммит идет одна измененная строчка.

    В режиме "быстро клепаем демо/прототип/пруф-оф-концепт особо не задумываясь, разбрасывая по коду всевозможные TODO и давая переменным имена типа foo" - можно вообще нонстоп печатать. Ну точнее выходит около 70%, потому что иногда приходится таки голову включать или что-то читать.
    Ответ написан
    Комментировать
  • Назовите названия всех должностей в веб-дизайне?

    Jump
    @Jump
    Системный администратор со стажем.
    Назовите названия всех должностей в веб-дизайне?
    Их нет.
    Должность это единица административного деления.
    Не важно чем занимается человек дизайном, агротехникой, или сантехникой - должность от этого не меняется.
    Самая высокая должность зависит от организационной формы предприятия - например генеральный директор.
    Самая низкая должность - рабочий.
    Ответ написан
    1 комментарий
  • Как сверстать шестиугольники вокруг цифр?

    @kiberlain
    6-угольную svg-шку бэкграундом вставить в прямоугольный блок - самое логичное решение
    Ответ написан
    Комментировать
  • Как в Vue сделать поочередное удаление класса у элементов списка?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Непонятно, чем мотивировано неиспользование v-for. Если использовать, будет гораздо проще добиться того, что вы хотите, например:

    .hidden {
      opacity: 0;
    }

    data: () => ({
      items: [
        { text: '...', hidden: true },
        { text: '...', hidden: true },
        ...
      ],
    }),
    mounted() {
      this.items.forEach((n, i) => {
        setTimeout(() => n.hidden = false, 300 * (i + 1));
      });
    },

    <li v-for="{ text, hidden } in items" :class="{ hidden }">
      <a href="">{{ text }}</a>
    </li>
    Ответ написан
    9 комментариев
  • Какие есть фриланс биржи для новичков?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Все существующие - для новичков.
    Добро пожаловать на любую биржу, гугл в помощь, там вас очень ждут многочисленные барыги-перекупщики с заданиями по 500р...
    Ответ написан
    Комментировать