Ответы пользователя по тегу JavaScript
  • Размер и координаты в процентах?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Юзайте вьюпорт еденицы (vw/vh) для такого.
    caniuse.com/#feat=viewport-units
    https://developer.mozilla.org/en/docs/Web/CSS/length
    Ответ написан
    Комментировать
  • Переключение таблицы стилей по клику. Как реализовать?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Изращениями какими-то занимаетесь. Я более чем уверен что вся цветовая схема влезает в пару строчек стилей, и мучать юзера дополнительным http реквестом при каждой смене темы это очень плохая идея. Просто сделайте для каждой цветовой схемы глобальные классы для body или основного контейнера и по клику меняйте их. Выбранную схему просто потом сохраняете в localStorage или вообще на сервере можете даже хранить, если юзер логинится.
    Ответ написан
    Комментировать
  • Как делать анимацию круговой диаграммы d3.js при загрузке страницы?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Погуглите d3 piechart transition/animation и так далее. Найдете миллион примеров. В вашем случае можно сделать какую-нибудь анимацию изменения радиуса вначале.
    Я вот неделю назад от нефиг делать игрался, вот результат, вам подойдет (только все равно вначале нагуглите примеры с комментами чтобы все понять, если вы не знакомы с attrTween).
    codepen.io/suez/pen/dc6416d34803ff7f4db884e70c0ce7ab
    Ответ написан
    4 комментария
  • Как сделать такой эффект при скроле?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Обычный one page scroll. Причем весьма уныло реализованный.
    Ответ написан
    Комментировать
  • Как сделать такой эффект прокрутки (скроллинга)?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вариантов как сделать много. Самый красивый/оптимальный/масштабируемый, это использование GSAP с таймлайнами. Создали таймлайн с состояниями всех анимаций телефона и прочих объектах в % допустим и привязали эти проценты к высоте скролла всего сайта. Сайт скроллится - проценты меняются, гсап сам по умному все анимирует, включая множественные изменения трансформов одновременно.
    Ответ написан
    Комментировать
  • Js-аниматор-звукорежисер - есть такая профессия?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Это все по идее входит в обязанности UI Engineer (тот же фронтендер по сути, который помимо всяких SPA умеет в красивости).
    На фрилансе подобных тасков много. Ко мне часто обращаются с задачами "превратить видео из After Effects в реальную js анимацию" и "реализовать какую-то крутую фигню, которую тебе дизайнер объяснит с помощью слов и картинок". В профиле найдете мой кодпен, там много всякой всячины, из-за которой ко мне постоянно обращаются люди.
    Ответ написан
    5 комментариев
  • Как можно сделать интерактивную инфографику для сайта с ссылками?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    По виду вам подойдет что-то такое, как минимум попробуйте - https://sarasoueidan.com/tools/circulus/

    Edit: хотя глянул получше, там без допиливания никак, ибо генератор больше под иконки заточен.
    Ответ написан
    1 комментарий
  • Как скроллом масштабировать внутри div?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Плагины 100% есть, гуглите что-то типа javascript/jQuery zoom и так далее. Вот пример - www.elevateweb.co.uk/image-zoom/examples (там внутри есть вариант с колесом).
    Что касается свг, то надо надо зумить с помощью изменения viewBox скорее всего. По плагинам не в курсе что и как.
    Ответ написан
    Комментировать
  • Легкий, проверенный, семантичный способ сделать действия открытия выбора файлов?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    <label>
      %любой контент, будь то текст или всякие иконки%
      <input type="file"/>
    </label>


    Вас ведь это интересует?
    Ответ написан
    Комментировать
  • Как сократить такую jquery запись?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Какие-то извращения люди предлагают, страшно жить в таком мире.
    Есть 2 варианта:
    1) CSS :hover - этот самый адекватный.
    2) Если вы извращаетесь и вам надо именно на js, то убираете нафиг все убогие id у элементов, пишите нормальные классы, и к элементам, при наведении на которое должна срабатывать анимация, добавляете атрибуты data-id="*" где * это номер элемента (любым циклом можно такой html вывести).
    Финальный код будет выглядеть так:
    $(document).on("click", ".wpu", function() {
      var id = $(this).data("id");
      $(".epu-"+id).toggle();
    });
    Ответ написан
    1 комментарий
  • Как сократить код в одну функцию?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Убираешь нафиг txt-1/txt-2/txt-n классы у элементов, вместо этого добавляешь им дата-аттрибуты с айдишниками. Аля data-id="2". Через делегирование вешаешь один обработчик на все .txt элементы. Внутри получаешь их id из атрибута, затем у активного элемента убираешь active-класс, текущему (кликнутуму) его добавляешь, затем прячешь все .img (тут на самом деле тоже лучше поменять с hide/fadein на классы, но это уже не моя проблема) и показываешь нужный с помощью полученного ранее id.
    $(document).on("click", ".txt", function(e) {
      e.preventDefault();
    
      var id = $(this).data("id");
    
      $(".txt.txt-active").removeClass("txt-active");
      $(this).addClass("txt-active");
      $(".pull-right .img").hide();
      $(".pull-right .img-"+id).fadeIn();
    });
    Ответ написан
    Комментировать
  • Как создать логотип с анимацией как тут http://craftedbygc.com/? Есть ли плагин?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    У них самопальный логотип на канвасе. JS минимизированный, так что посмотреть как сделано у них не получится.
    Учите канвас, тогда поймете как такое делать.
    Ответ написан
    Комментировать
  • Где можно попрактиковаться с svg?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Идете сюда - tutorials.jenkov.com/svg/index.html
    Наугад изучаете и тут же что-то делаете. В свг очень важно научиться писать все эти координаты "ручками". То есть не ждать какого-то сферического экспорта из иллюстратора от дизайнера, а сидеть и по фану что-то делать. Причем ставку надо делать на path (tutorials.jenkov.com/svg/path-element.html) элемент, потому-что с помощью него в свг можно сделать что угодно и потом это дело анимировать. Вначале освойте базовые формы, потом разберитесь как юзать всякие Q/C/a элементы. Затем попробуйте это дело анимировать без специальных либ (то бишь велосипедирование с помощью rAF). Это безусловно не особо быстрый путь, но зато прокачаетесь огого как.
    Я вначале года начал изучать таким способом. Помню как несколько дней бился головой о стену, пытаясь понять как грамотно юзать arc элемент, в итоге получилась такая простенькая демка - codepen.io/suez/pen/vEgZba
    Потом пошло поехало, 5 дней назад вот эту запилил, где все куда интереснее - codepen.io/suez/pen/epgZjK
    codepen.io/search/pens/?limit=suez&page=1&q=svg - вот вроде как все svg демки, можете по дате отсортировать и идти от начала к концу, изучая внутренности. Там конечно много рандомного говнокода и я комментировал только особенно интересные демки, но все же лучше чем ничего.
    Ответ написан
    Комментировать
  • Как реализовать такую анимацию?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    У них это реализовано с помощью множества DOM-элементов. Я бы советовал делать с помощью канваса. Производительность точно будет на высоте, ибо эффект простой и не требует интеракций с юзером.
    Ответ написан
    Комментировать
  • Как реализовать анимацию появления слов и букв как на melanie-f.com?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    У них это спрайтом сделано - melanie-f.com/en/img/sprite-lookbook.png
    А так подобные вещи делаются либо с помощью SVG, либо канваса.
    Ответ написан
    Комментировать
  • CSS или SVG анимация. Как правильно реализовать идею?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Если бы вам нужно было как то обводку кругов динамично закрашивать, то тогда стоило бы юзать svg. А тут вообще можно сделать с помощью обычный круглых блоков, белых дивов для линий и их анимирования с помощью scaleX/width (в сочетании с overflow:hidden для кругов например).
    Ответ написан
    Комментировать
  • Какой из вариантов лучше использовать для события 'cllick' и почему?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Всегда юзайте второй. Помимо того, что навсегда себя обережете от возможных тупняков с динамично создаваемыми элементами, получите возможность биндить хендлер например не только на 1 ивент. Например если хотите обрабатывать mousemove и touchmove, то со вторым вариантом просто напишите
    $(document).on("mousemove touchmove", function(event) {});
    Ответ написан
    1 комментарий
  • Как узнать процентное значение darken, lighten?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вам необходимо узнать "разницу" между цветами, в параметрах которые можно передать в SASS?
    razorjam.github.io/sasscolourfunctioncalculator - чекните вот это.
    Ответ написан
    Комментировать
  • Как такое сверстать, затемненный фон с прозрачной областью?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Обычно подобные "подсвечивающие оверлеи" делаются под прямоугольные варианты, и тогда просто 4 оверлей-дива ставятся вокруг области и получается нужный эффект. Но так как у вас круг, то в голову лезут такие варианты:
    1) Что-то на канвасе. Тут кодом не помогу, с канвасом слабо дружу.
    2) Svg маски, возможно css blend-modes (не уверен).
    3) Создать глобальный overlay с z-index: 1. Создать блок, в него положить клон всего этого грида. Этот блок сделать таким вот круглым, задать ему z-index: 2. При движении этого блока, клон грида внутри двигаем в противоположном направлении. В итоге будет получаться эффект подсветки.
    4) Еще наверняка возможные какие-нибудь варианты с псевдоэлементами, svg, и оверлеем, состоящим из кусков, но у меня сейчас воображения на такое не хватит.
    Ответ написан
    1 комментарий
  • Как лучше анимировать svg?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Зависит от того, что именно вы хотите анимировать в svg. Кому то трансформаций хватит, а кому-то нужны сложные анимации для path со всякими кастомными приблудами.
    Универсальные варианты - GSAP и D3. Гсап чисто заточен под анимации, и там имеется большое количество готовых решений/плагинов для свг. Если вам необходимо сделать крутую и комплексную анимацию, то это наверное самый оптимальный вариант. D3 тоже хорош, но он больше рассчитан на работу с данными, и для всяких красивяшек-анимашек не особо подойдет.
    Есть еще velocityJS и подобные либы, но они все по сути дела являются лайт-версиями Гсапа (при том что у самого гсапа есть более легкие его версии).
    CSS умеет многое, с ним можно даже анимировать отрисовку path и подобные штуки, но он вообще не дружит ни с какими ИЕ, когда дело касается работы с path (+ в ФФ имеются проблемы с transform-origin). Примеры баловства с svg лоадерами на чистом css:
    codepen.io/suez/pen/myvgdg
    codepen.io/suez/pen/ogmMOM
    codepen.io/suez/pen/MwJdRy

    Если вам необходимо сделать что-то совсем уж кастомное и крутое, и при этом вы совершенно не уверены что либы в этом вам помогут (либо нет такого функционала, либо пока научитесь его юзать - сойдете с ума), то придется писать велосипеды на js. requestAnimationFrame и в бой. Вот два велосипеда для примера - codepen.io/suez/pen/oXLroX и codepen.io/suez/pen/emjwvP

    Ах да, еще есть SMIL анимации (которые прямо внутри SVG описываются) и они умеют очень многое (во многом даже удобнее js получаются, без потери в функциональности), но от них уже медленно отказываются современные браузеры (да и к тому же они никогда не поддерживались в IE). Так что их можете обходить стороной.
    Ответ написан