• Как сделать такое подчеркивание текста?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    span {
        background: linear-gradient(to bottom,
            transparent 0%,
            transparent 50%,
            #ff0 50%,
            #ff0 100%);
    }
    Ответ написан
    4 комментария
  • Как наложить текст на картинку?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    .category-desc {
        position: relative;
    }
    
    .page-header.item-title {
        position: absolute;
        bottom: 60px;
        left: 10px;
    }
    Ответ написан
    Комментировать
  • Как сформировать строку посредством макросов языка Си?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Знаю, что здесь надо использовать "магию" с промежуточным макросом, но не могу сообразить как реализовать.

    Если я ничего не путаю, то должно получиться что-то такое:
    #define number 10
    
    #define mkstr2(s) #s
    #define mkstr(s) mkstr2(s)
    #define stamp "stamp n." mkstr(number)
    
    #include <stdio.h>
    
    int main()
    {
        printf("%s", stamp); // stamp n.10
        return 0;
    }
    Ответ написан
  • Как решить проблему со сменой цвета элемента на фоне другого цвета при скролле?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Если нужно именно такой частичный переход сделать, да еще и кроссбраузерно, то можно отталкиваться от следующего подхода:
    • Есть несколько секций с overflow: hidden
    • Иконки дублируются в каждой секции, но с разными цветами
    • В процессе скролла двигаем иконки, чтобы они оказывались на одном и том же месте относительно экрана

    Прототип для изучения:

    Вариант сделать это на position: fixed - не вариант, т.к. в сочетании с overflow: hidden может происходить неведомая магия.
    Ответ написан
    Комментировать
  • Как сделать похожую документацию?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Они используют vuepress.
    Ответ написан
    Комментировать
  • С чего начать изучение webgl, чтобы сделать так?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Вся суть таких анимаций - много заранее заготовленных кадров, которые мы по очереди показываем. Чем больше кадров - тем плавнее анимация. Они могут быть в отдельных картинках или по много кадров в одной. На вашем сайте все это еще поделили - каждая часть бутылочки имеет свою последовательность кадров:
    Спойлер
    1ersu-v8gwpy6mxqyagwggfny0k.png

    Каких-то конкретных преимуществ этого подхода по сравнению с одним кадром на все я не вижу. Использовать ли для этого WebGL? Ну можно. Точно также, как и обычный canvas. Как выводить картинки на него вы легко загуглите, остается только посчитать координаты расположения кадров в картинке (по идее дизайнер должен их там аккуратно по сеточке расставлять) и выводить их по очереди.

    P.S.: По идее можно отрендерить видео и вместо ручного переключения кадров проматывать его в разные стороны с разной скоростью в зависимости от скролла. Но на практике что-то не видно, чтобы это массово делали, обычно используют именно отдельные кадры.
    Ответ написан
    1 комментарий
  • Почему видеоуроки - это зло?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    не важно каким образом ты что-то изучаешь, главное, что в итоге ты получишь знания

    Кроме достижения цели есть еще такой фактор, как время. А время, как известно - деньги. Объемы и скорость потребления текстовой информации всегда выше, чем видео. Текст - это:
    • Возможность бегло просматривать, на автомате фильтруя воду
    • Возможность пользоваться поиском и гиперссылками
    • Возможность копипастить
    • Зачастую более полная информация
    • Чем больше читаете, тем быстрее читаете, тем больше читаете, тем быстрее читаете....
    • + В наших краях читать на английском большинству проще, чем слушать

    Как вы читаете подобную литературу и как мне не умирать после каждой страницы?

    Книги и статьи по разработке, маны и документации - это тексты, которые читать последовательно от корки до корки долго, скучно и неэффективно. Гораздо лучше быстро скользить взглядом, останавливаясь на важных моментах. А если объем большой - то сразу пролистывать все, а потом "спускаться на уровень ниже" за подробностями по тому или иному вопросу. Так книжка на 700-800 страниц может пролистываться за день, а затем при необходимости можно точечно просматривать темы, которые нужны на данный момент. Вести записи в тетрадях для запоминания также почти всегда неэффективно, лучше сразу практиковаться. Что нужно - само запомнится, а что не нужно - просто знайте где почитать, на случай если оно вдруг понадобится.
    Ответ написан
    Комментировать
  • Как просто пронумеровать строки в textarea (ценой не более, чем 5КБ кода)?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Попробовал набросать свой вариант без jQuery:

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Если речь про CSS-анимации, то да, display: none в большинстве случаев не вариант. Можно вместо него использовать сочетание visibility: hidden и pointer-events: none, а вопрос занимаемого пространства решать уменьшением высоты до 0 к примеру (но это уже зависит от того, что у вас там за анимация, по тексту этого не понять).
    Ответ написан
  • Как можно реализовать подобную анимацию?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В базовом варианте - в сам момент появления фоновой картинки у нее изменяются свойства transform: scale (уменьшаем размер), filter: blur (уменьшаем размытие) и opacity (либо делаем появление этой картинки, либо уход предыдущего фона с прелоадером). Затем плавно меняется transform: translate в зависимости от положения мыши или еще чего-то (на видео видно, что все немного "едет"). Главная опасность, которая может поджидать - это плохая производительность CSS-фильтров, так что все может немного подлагивать.

    По-хорошему, конечно, это все стоило бы написать на шейдерах и вместо transform: translate прикрутить что-то вроде fake3d, но это уже совсем другая история...
    Ответ написан
    Комментировать
  • Как исправить то, что после любого npm install прходится повторять инсталл из git?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    В обсуждении #19394 говорят, что эта проблема была исправлена в версии 5.7.0. Вероятно вам стоит немного обновить NPM.
    Ответ написан
    1 комментарий
  • Почему не отображается слайдер?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Вот тут не должно быть пробелов между именами классов:
    var services__slider = $(".services__wrap.owl-carousel");
    Ответ написан
    3 комментария
  • Какие шаблоны проектирования js применяются на практике чаще всего?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    какие паттерны применяются чаще всего на практике и где

    Сразу отмечу, что все это чисто мое имхо, которое может не совпадать с мнением окружающих. В контексте фронтенда обычно все довольно просто. По моим наблюдениям в среднем сайте могут иметь смысл:
    1. Модули (делим код на независимые части)
    2. Фабрики (для компонентов интерфейса)
    3. Синглтоны (для хранилищ, точек сбора полифиллов / утилит и.т.д.)
    4. Адаптеры (для зависимостей и полифилов, которые могут измениться / выпилиться)
    5. Наблюдатели (для сбора происходящих событий в одном месте)
    6. Хранители (для сохранения действий пользователя и "Ctrl-Z")
    7. Стратегии (если действуем в зависимости от прилетевших данных)

    Другим паттернам применение вижу редко, только если под какую-то замороченную бизнес-логику. Хотя кого я обманываю, на среднем сайте обычно происходит только один паттерн - доширак из костылей. Ну и стоит сказать, что SPA-фреймворки имеют свойство навязывать свои подходы к решению задач, но это отдельная тема.

    Важно понимать, что паттерны проектирования - это просто хорошие идеи по поводу того, как организовать большой объем кода в той или иной ситуации. Это не "изучи тайное знание, запомни, и делай так всегда", не "используй паттерны, потому что великие их используют", это скорее "если не уверен как организовать код, возьми готовую идею, она вроде работает". Если вы будете просто решать задачи, то через N лет практики вы сами их все "изобретете", только не будете знать, что у них есть названия. Эффективно будет организовать себе заметку о том, какие из этих идей для чего примерно применяют, а потом, в процессе работы, в нее подглядывать, если встал вопрос "как организовать этот код".
    Ответ написан
    7 комментариев
  • Кто сталкивался с версткой такого типа макета?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Забудьте... дизайнер просто демон... посылайте нафиг дизайнера...

    О да, люблю эти комментарии. Набросал тут небольшой прототип:


    В браузерах особо не проверял, только Chrome и FF, но вроде в современных должно работать.
    Ответ написан
    6 комментариев
  • Имеет ли смысл такая конструкция в JS?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    result.hasOwnProperty(i) не может быть false. Во всяком случае я не придумал подходящего "кейса".

    Может быть и false, если какое-то свойство определено в прототипе:
    class Test {
        constructor() {
            this.foo = 'foo';
        }
    };
    
    Test.prototype.bar = 'bar';
    
    const test = new Test();
    
    console.log('foo' in test); // true
    console.log('bar' in test); // true
    console.log(test.hasOwnProperty('foo')); // true
    console.log(test.hasOwnProperty('bar')); // false
    Ответ написан
    Комментировать
  • Как расположить элементы?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    С помощью гридов можно так расположить элементы не меняя их структуру и чтобы растягивалось:

    В современных браузерах должно работать, но если у вас IE - печалька.
    Ответ написан
  • Почему не работает слайдер Owl Carousel?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Скрипты /js/slider/owlCarousel-2.2.1/owl.carousel.min.js не идентичны. Ваша программа для копирования заменила часть символов в строках с адресами и в регулярных выражениях. В результате получился скрипт с синтаксическими ошибками. Если заглянете в консоль, то там сразу будет
    Uncaught SyntaxError: missing ) after argument list - owl.carousel.min.js:6

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Посмотрел в хроме под линуксом. У вас там в целом с версткой не все ок - большой заголовок всегда скрыт под фиксированным меню. Его просто не видно и доскроллить до него по определению не получится. У вашего клиента видимо стоит какой-то плагин, который позволяет прокручивать страницу больше, чем это задумано (для красивого плавного торможения) и получается, что он успевает немного увидеть этот скрытый заголовок. Стоит добавить что-то вроде
    .main {
        padding-top: 100px;
    }

    чтобы вывести его из-под меню.
    Ответ написан
    Комментировать
  • А существует ли какой-то аналог Git но для системы (Ubuntu) в целом - чтобы откатиться после изменений можно было?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Обычно достаточно хранить конфиги из /etc, для этого можно этот самый git и взять (очень удобно добавить также etckeeper). Я бы еще отдельно в файлик коммитил вывод команды apt-mark showmanual, чтобы знать, какие пакеты ставились руками и в случае чего не вспоминать, что как называлось. Если вы не делаете что-то жутко специфическое, правя руками файлы по всей системе, то этого должно хватать. Снапшоты - это на крайний случай, если вы действительно хотите всю систему сохранять.
    Ответ написан
    Комментировать
  • Что это за карта и как такую добавить на сайт?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    Как найти именно эту карту я не знаю, но вы можете взять стандартные карты от гугла и их стилизовать. Это не сложно и можно отталкиваться от готовых примеров - например вот похожий вариант.
    Ответ написан
    Комментировать