Параллакс эффект при движении мыши и скролле сайта. Без библиотек и дополнений. HTML CSS JavaScript.

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 275

  • @FreelancerLifeStyle
    @FreelancerLifeStyle  3 года назад +19

    Как вам?
    🔴 Карта канала: miro.com/app/board/o9J_lZB3YKI=/
    🔴 Получить доступ к плюшкам + поддержать канал: www.patreon.com/freelancerlifestyle
    🔴 Telegram канал: t.me/freelancer_lifestyle (teleg.run/freelancer_lifestyle)
    🔴 Telegram чат по верстке: t.me/flschat (teleg.run/flschat)
    🔴 Facebook: facebook.com/freelancerlifestyle
    🔴 Instagram: instagram.com/freelancer.lifestyle

  • @deniskotov
    @deniskotov 3 года назад +62

    Каждое новое видео - как праздник для меня!

  • @rusnettle
    @rusnettle 3 года назад +19

    Женя - тебя просто слушать приятно, не то что внимательно запоминать но и просто слушать! Так держать! :)

  • @zmeygorynych5684
    @zmeygorynych5684 3 года назад +16

    Вот разве можно не любить этого парня?)

  • @superdexter1932
    @superdexter1932 3 года назад +9

    Спасибо вам за ваши ролики, очень помогают разобраться в той или иной теме.

  • @and555_48
    @and555_48 3 года назад +2

    Женя ты крут!
    Реально ЛУЧШИЕ видео уроки по Frontend на RUclips в русскоговорящем сегменте!

  • @АлексейНескажу-б9э
    @АлексейНескажу-б9э 2 года назад +1

    Женя, спасибо за твои уроки!!! 👍
    Прошел твой бесплатный курс за 2,5 месяца. Хороший старт для дальнейшего развития. Стараюсь тупо не повторять, а по максимуму изменять задачи и продумывать код самостоятельно в соответствии с полученными знаниями.
    Хочу предложить вариант расчёта смешения объектов параллакс эффекта для уменьшения кода и переменных.
    Суть в том, что бы высчитать коэффициент относительности смещения курсора и в соответствии с ним подвинуть объект на тот же процент от указанной максимальной величины смещения.
    V - размер viewport.
    M - координаты курсора
    K - коэффициент
    P - максимальное смещение объекта в ‘px’ или ‘%’
    После преобразований формул вывел короткую. Записываю сразу общий результат, подставлять значения для осей X и Y
    Вариант для максимального смещения в пикселях:
    K = (V - 2 * M)/V transform: translate (${K*P}px, ${K*P}px);
    Вариант для максимального смещения в %:
    K = (V - 2 * M)/100 transform: translate (${K*P}%, ${K*P}%);
    Ниже привожу реализованный мной код )))
    window.onload = function () {
    const parallax = document.querySelector('.parallax');
    if (parallax) { // проверка наличия блока parallax. нужно для исключения ошибки на страницах сайта, где этого блока нет.
    // переменные с блоками которые будут двигаться
    const parallaxFon = document.querySelector('.parallax__fon');
    const parallaxFoto = document.querySelector('.parallax__we');
    const parallaxTitle = document.querySelector('.parallax__title');
    // максимальное отклонение объектов в %)
    let valueMoveFon = -1;
    let valueMoveFoto = -2;
    let valueMoveTitle = 3;
    document.addEventListener('mousemove', function (event) {
    let widthViewport = document.documentElement.clientWidth; // ширина окна браузера
    let heightViewport = document.documentElement.clientHeight; // высота окна браузера
    // коэффициент относительности жвижения объектов к курсору для смещения указанного в '%'
    let percentMoveMouseX = (widthViewport - 2 * event.clientX) / 100;
    let percentMoveMouseY = (heightViewport - 2 * event.clientY) / 100;
    // присвоение стилей трансформации (максимальное отклонение в '%' * на коэффициент относительности движения )
    parallaxFon.style.cssText = `transform: translate(${percentMoveMouseX * valueMoveFon}px, ${percentMoveMouseY * valueMoveFon}px)`
    parallaxFoto.style.cssText = `transform: translate(${percentMoveMouseX * valueMoveFoto}px, ${percentMoveMouseY * valueMoveFoto}px)`
    parallaxTitle.style.cssText = `transform: translate(${percentMoveMouseX * valueMoveTitle}px, ${percentMoveMouseY * valueMoveTitle}px)`;
    });
    }
    }

  • @aleksejtsind3978
    @aleksejtsind3978 3 года назад +8

    Отлично! Спасибо, Женя!
    Сделать на чистом это супер!!!

  • @no_way_back813
    @no_way_back813 3 года назад +12

    Ура, новый видос! Спасибо Женя за труды :)

  • @ТёмаРассадин-н9щ
    @ТёмаРассадин-н9щ 3 года назад +5

    Спасибо за то, что объяснил вычисления при параллакс эффекте. Как по мне, это самое сложное

  • @andrewstarcev
    @andrewstarcev 3 года назад +12

    Как всегда огонь!! 🔥🔥🔥

  • @allerw
    @allerw 2 года назад

    Это просто бомбически! Женя, огромное Вам спасибо, за ваши труды. Успехов и удачи. Любуюсь не нарадуюсь parallax.

  • @iliagolota9653
    @iliagolota9653 3 года назад +6

    Супер! Дякую! Сиджу зараз на відео про флекси , але кожне нове відео - мотивує навіть своєю появою , бо так хочеться навчитися робити такі круті ефекти! Обов'язково сюди доберусь з часом ( бо намагаюсь все робити поступово).

  • @Masimkaify
    @Masimkaify 3 года назад +4

    Жека, это супер! Не останавливайся! И большое тебе спасибо!

  • @mmax487
    @mmax487 3 года назад +4

    Как, раз что хотел довно учить, спасибо

  • @shukonfadah5725
    @shukonfadah5725 2 года назад

    все ваши виде это лучшее что можно найти на русскоязычном сегменте! Я поддерживаю вас во всём! желаю мира и спокойствия вашей стране и семье

  • @Sogeking228
    @Sogeking228 2 года назад +1

    просто лучший, незнаю что бы я делал без тебя

  • @movieclips4848
    @movieclips4848 3 года назад +4

    Спасибо вы меняете жизнь сотен тысяч людей к лучшему желаю вам к концу года преодолеть планку в миллион подписчиков 🙏🙏🙏

  • @РусскийГитарист-к9ф
    @РусскийГитарист-к9ф 3 года назад +3

    Я очень рад, что прохожу обучение именно у тебя. Уже добрался до js. Спасибо тебе огромное за твой труд, за все плюшки на патреоне тоже огромное спасибо))) Поехали)))

  • @artbotguy
    @artbotguy 3 года назад

    Это видео ещё доступнее, чем предыдущее тоже про горы, спасибо)

  • @АлексейНасвайный-ы7с
    @АлексейНасвайный-ы7с 3 года назад +2

    Спасибо за твою работу, благодаря тебе и твоим БЕСПЛАТНЫМ урокам, я стал фронт энд разработчиком. Серьезно, ты даже букмекеров на рекламишь. По-сути ты делаешь это исключительно потому что ты хочешь делать мир лучшее. Раньше такой контент можно было найти на западном Ютубе.

  • @lenamagenta7416
    @lenamagenta7416 3 года назад +1

    на одном дыхании. спасибо тебе, Человек ))

  • @asyasmoothies9911
    @asyasmoothies9911 3 года назад +2

    Есть идея Картинка с землёй на которой стоит человек сделать длиннее, т.е. земли под человеком должно отображаться больше ("можно с переходом под землю")
    Но отображать ты часть как в видео.
    При скроле быстро поднимать это изображение.
    Будет иллюзия отдаления, или ухода под землю)

  • @sergeybondarenko2949
    @sergeybondarenko2949 3 года назад +2

    Пришел сюда после интервью у бороды и не пожалел. Спасибо за работу! Подписка и лайк :)

  • @Ку-куЕпта-ь8о
    @Ку-куЕпта-ь8о 3 года назад +2

    Только вчера задумался сделать нечто подобное, а тут Вы! Как всегда лучший 🤟🏻👍

  • @БэндерРобот
    @БэндерРобот Год назад

    Спасибо за урок!)
    Не знаю, на сколько это может считаться оптимизацией:
    - в функцию назначения стилей сразу передавать значения coordXpercent и coordYpercent с учетом коэффициента. Тут же добавить transition, с помощью которого можно управлять скоростью и чуток поведением (lenear, ease-out). Таким образом можно обойтись без distX/distY и не пересчитывать coordXpercent и coordYpercent. Машина у меня старая и с графикой у нее туго, зрительно, мой вариант на ней более плавно происходит;
    - сами же назначения стилей для каждого элемента загнал в цикл;
    - по мелочам - если coordXpercent и coordYpercen получать не в процентах, а в отношении (не умножая на 100), то можно их УМНОЖАТЬ на коэффициент выраженный в процентах, вроде так более наглядно получается.

  • @ДарьяАрсеньева-х9и
    @ДарьяАрсеньева-х9и 3 года назад

    Давно облизывалась глядя на этот макет. И, о чудо! Сейчас узнаю как реализовать его главные фишки. Ура!🥳 Лайк не глядя)

  • @marinatripetska1772
    @marinatripetska1772 3 года назад +2

    Це дуже круто! Дякую за чудовий контент!!!!

  • @it1729
    @it1729 3 года назад +1

    Как раз хотел добавить в вёрстку такую штуку - Жека выпускает видео! Спасибо!

  • @valentine.samoylov
    @valentine.samoylov 3 года назад

    Спасибо 🙏
    Вдохновил взяться за макет с параллаксом!

  • @olegsemenukha4107
    @olegsemenukha4107 3 года назад +9

    Бомба!!!❤️🙏

  • @asmix7328
    @asmix7328 3 года назад +1

    Магия какая-то)
    Спасибо за урок!)

  • @web2905
    @web2905 3 года назад +3

    Спасибо) Супер эффект :)

  • @seryibaran_official
    @seryibaran_official 3 года назад +2

    Ура!!! Новое видео от Жени!!!

  • @ДмитрийСедов-ж9у
    @ДмитрийСедов-ж9у 3 года назад +2

    Жека, ты топовый чел! Самый годный контент на твоём канале))

  • @maximtresk
    @maximtresk 3 года назад +3

    Ничего не понятно, но очень интересно :)

  • @dechto1
    @dechto1 3 года назад +1

    Вау, неожиданный контент! Спасибо ☺️

  • @ДмитрийВолокитин-я8ф
    @ДмитрийВолокитин-я8ф 3 года назад +2

    Супер. Спасибо за ролик.

  • @pashasergiychuk8854
    @pashasergiychuk8854 3 года назад

    Круто,теперь есть реклама!Очень рад за вас!

  • @dimonrock1791
    @dimonrock1791 3 года назад +1

    Спасибо за твои классные уроки 👍

  • @detro1821
    @detro1821 3 года назад +13

    не человек, золото

  • @annalumery4211
    @annalumery4211 3 года назад +1

    Женя, спасибо тебе большое за твой труд! Всё доходчиво, интересно и наглядно!!

  • @kotlancer
    @kotlancer 3 года назад +2

    Годнота подъехала!)) плюс один патрон в боекомплекте разработчика!)

  • @oleksandrmalishevskyi3979
    @oleksandrmalishevskyi3979 Год назад

    Это то, что я долго искал

  • @Денис-в5д5ь
    @Денис-в5д5ь 3 года назад +1

    Как всегда шикарно!!!!

  • @ruslanbasarev5159
    @ruslanbasarev5159 3 года назад +1

    спасибо огромное за такой мега полезный контент... и удачи вам в развитии канала и вообще по жизни)!

  • @evgenevgenin9994
    @evgenevgenin9994 3 года назад

    Спасибо ра реальное качественное бесплатное обучение, в наше время большая находка. Жека = клондайк плюшек.

  • @ProAleX-eo6ce
    @ProAleX-eo6ce 3 года назад +1

    Жека красавчик;) как и всегда, Спасибо за огромный труд;)

  • @WladimirTarasov
    @WladimirTarasov 3 года назад

    респект за разбор параллакса по полочкам

  • @serdarhuseynov8901
    @serdarhuseynov8901 2 года назад

    Евгений просто спасибо

  • @danilafipsk
    @danilafipsk 3 года назад

    Офигенно! Красиво!

  • @АлександрБайшев-р4г
    @АлександрБайшев-р4г 3 года назад +1

    Жека, спасибо за полезное видео!!!

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад +1

      Пожалуйста!

    • @АлександрБайшев-р4г
      @АлександрБайшев-р4г 3 года назад

      @@FreelancerLifeStyle Сейчас начал смотреть 4-й стрим для патронов, и узнал, что недавно там кто-то высказывал в закрытом чате какие-то претензии. Так вот таких деятелей сразу на кол))) А может это провокация со стороны твоих конкурентов!!! В любом случае, Жека, мы за тебя, ты наикрутейший специалист и учитель в свой сфере деятельности!!!

  • @ivank.2040
    @ivank.2040 3 года назад +1

    Круто, просто круто!

  • @aleksk9170
    @aleksk9170 3 года назад +1

    круто! обалденно!

  • @KomAlexei
    @KomAlexei 2 года назад +1

    Красота!

  • @ruleti5347
    @ruleti5347 3 года назад

    топовый контент, спасибо Евгений

  • @ger-ych1545
    @ger-ych1545 2 года назад

    Спасибо огромное Вам! Очень помогло это видео :)

  • @eugeniotur
    @eugeniotur 3 года назад

    Eselente como siempre !!! Muchas garcias por tu labor.

  • @ОлегМарченко-ы2ь
    @ОлегМарченко-ы2ь 3 года назад

    JS наконец-то ожил! :D Отличное видео!

  • @Noname-i4f3z
    @Noname-i4f3z 3 года назад +1

    Огромное спасибо, классное видео

  • @sergs379
    @sergs379 2 года назад

    Супер. А как сделать такой параллакс в в виде плагина, чтоб можно было его использовать где надо. Может в нескольких местах страницы.

  • @_akunin3674
    @_akunin3674 3 года назад +3

    Дякую за контентіще!

  • @АнонимАноним-с2о
    @АнонимАноним-с2о 3 года назад +2

    Видос отличный) Ну коли просишь предложения по улучшению, вот пара: нужно добавить троттлер который будет вызывать обработчик движения мыши не при каждом событии, а например раз в 50мс. Таким образом мы оптимизируем производительность, а для пользователя это вообще не будет заметно.
    Далее нужно обернуть в функцию передачу стилей и вызывать ее для каждого элемента параллакса в цикле. Это нужно для улучшения лаконичности кода, а также чтобы унифицировать решение. Например помечать параллак-объекты в верстке специальными data-атрибутами, в которых указывать свой коофицент, а для всей сцены создать дата атрибут со скоростью. Таким образом можно будет собрать мини-либу для парралакса.
    После того как сделал проверку на parallax, можно выбирать элементы относительно него, а не документа, ведь они по факту все дочерние. Это во-первых, позволяет делать более точную выборку. Во-вторых, это небольшая оптимизация, которая позволяет искать узлы не от документа, а от уже выбранного узла.

  • @BOSCTON
    @BOSCTON 2 года назад +1

    Здравствуйте, подскажите пожалуйста как вставить данную анимацию в Figma ?

  • @Тамилл
    @Тамилл 3 года назад +6

    Спасибо вам огромное!!!!!

  • @zaya2868
    @zaya2868 3 года назад +10

    Лайк і комент ще не дивлячись:)

  • @albertrain7093
    @albertrain7093 3 года назад

    Спасибо Женя, как всегда ты на высоте ) У меня вопросик.. max-aspect-ratio все современные браузеры понимают?

  • @НиколайСтепанов-ю3м

    Здравствуйте, можете выпустить видео подробно про атрибут hrefland, яб его с удовольствием посмотрел на примерах) ну если не получится то ничего страшного, вы и так много видео полезных выпускаете за что вам ОГРОМНОЕ СПАСИБО!

  • @ЮлияВолкова-к3н
    @ЮлияВолкова-к3н 3 года назад +4

    Здравствуйте! Спасибо за потрясающую подачу материала. У меня вопрос: не могли бы вы, пожалуйста, записать туториал по созданию переходов между экранами? Например с использованием barba.js. Конкретно интересуют переходы slide (при клике на ссылку экран "сдвигается" и контент второго экрана заменяет контент первого, надеюсь понятно что имеется в виду) и fade.
    Очень надеюсь на ваш ответ, заранее спасибо!

  • @evgenika7472
    @evgenika7472 3 года назад +1

    Спасибо!!! Лучший!!!

  • @davidkhankhadjayev8307
    @davidkhankhadjayev8307 3 года назад +2

    Ты блин вашшее))) я хотел бы чтобы ты научил нас JS так что бы нам тоже было так просто создавать анимации ))
    Мы знаем JS но не можем так круто его использовать)

  • @РомаМатвийчук-к6т
    @РомаМатвийчук-к6т 3 года назад +1

    Топчик!

  • @xu2593
    @xu2593 2 года назад

    спасибо, все работает

  • @olegandrov267
    @olegandrov267 Год назад

    Почему могут не применяться стили? При загрузке страницы сразу стоит transforn: translate(0%, 0%);. После движения мыши стили пропадают вообше.

  • @gritsienkooleg3447
    @gritsienkooleg3447 2 года назад

    Даа, спасибо, Жека )

  • @МихаилЖуравлев-э3с
    @МихаилЖуравлев-э3с 3 года назад +1

    Ты лучший!

  • @ArsenDanylenko
    @ArsenDanylenko 2 года назад

    Дякую за відео, друже!

  • @abdulloxerkinov1731
    @abdulloxerkinov1731 3 года назад +4

    круто брат

  • @iradi99
    @iradi99 3 года назад

    Много видос и по быстрее а то я соскучился

  • @АдхамЭсанов-в6т
    @АдхамЭсанов-в6т 3 года назад

    Ты весь СНГ поднимешь своими обучениями.
    Годнята всегда отличается своим запахом.

  • @ПриродакрасаМіра
    @ПриродакрасаМіра 3 года назад +2

    Жека круто !!!

  • @МаксимЖук-э2г
    @МаксимЖук-э2г 3 года назад

    Можете снять видос по html-препроцессорам? И используют ли их? По css часто слышу, а про html-препроцессоры недавно узнал

  • @PieceOfInternet
    @PieceOfInternet 3 года назад +2

    Видео крутое!)
    Жека , было бы круто от тебя получить видосик по посадке верстки на Wordpress. Очень мало адекватного контента в этом направлении и если сделаешь будет круто) уверен будет 100500 лайков!)

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад +1

      Да, будет мини курс

    • @TheGlebSChannel
      @TheGlebSChannel 3 года назад

      полным полно видео на эту тему, где это очень мало контента?

  • @megashow6330
    @megashow6330 2 года назад

    Подскажите почему JS код не работает, пишет ошибка в 5 строке:
    "use strict"
    //Ждем загрузку контента
    window.onload = function() {
    const parallax = document.querySelector('.parallax');
    if (parallax) {

  • @SwordToothTiger
    @SwordToothTiger 3 года назад

    Добрый день, а у вас есть видео в которым рассказывается какие минимальные знания нужны что бы начать хоть какую то копеечку зарабатывать и как? Если нет, планируеете сделать? Спасибо за видео, в любом случаее.

  • @leoclu8939
    @leoclu8939 2 года назад +1

    Ничего не понял, но очень интересно

  • @kostz1212
    @kostz1212 3 года назад +1

    Жека, что думаешь о BootStrape и будешь ли ты делать гайды по ниму?

  • @kontiray8842
    @kontiray8842 3 года назад

    Можете пожалуйста скинуть строки для обнуления css? Увидел на видео про SASS, все переписал, только строку на html, body не смог полностью увидеть

  • @Max_FS
    @Max_FS 3 года назад +1

    Круть👍🔥

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад

      Спасибо!

    • @Max_FS
      @Max_FS 3 года назад

      @@FreelancerLifeStyle и Вам спасибо за Вашу работу и такие отличные видео!

  • @natalia_0729
    @natalia_0729 Год назад

    Здравствуйте! Подскажите, а как убрать этот параллакс эффект движения картинки на мобильных устройствах?

  • @samsaracave3437
    @samsaracave3437 3 года назад +3

    О, видео

  • @frol-eg
    @frol-eg Год назад

    супер! спасибо!
    но замечу, что Procent - в англ.языке нету. правильно писать percent

  • @hinestia8866
    @hinestia8866 3 года назад

    Евгений можете пожалуйста посоветовать где можно найти и скачать psd макеты для новичков?

  • @ОлександрРоманенко-щ9и

    Спасибо за видео, отличный урок. Был, помнится, еще один урок по параллаксу (с маяком и морем). В этом, к сожалению, я не достиг результата, хотя, вроде, проверил все не один раз. В консоли пишет предупреждение: Ошибка разбора значения в 'transform'. Объявление пропущено. В чем может быть штанга?

  • @Фёдор-м7н
    @Фёдор-м7н 3 года назад

    Ууу спасибо как раз искал такой урок

    • @mmax487
      @mmax487 3 года назад

      Можно такой еффект поставить на маленком блоке? Либо фото?

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад +1

      Конечно

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  3 года назад

      Я рад!

  • @dkorppinen
    @dkorppinen 3 года назад +1

    Жека, привет! не могу словить почему clouds.style.cssText = `transform: translate (${positionX / forClouds}%,${positionY / forClouds}%);`;
    не устанавливается ? пробовал напрямую clouds.style.transform = `......`; тоже самое.

    • @dkorppinen
      @dkorppinen 3 года назад +1

      разобрался... translate (${po.. и translate(${po.. не одно и то же( дело в пробеле после функции - его не должно быть.. кстати тож самое было в этом примере и с rgba( и rgba (..
      Ладно, ок. зато разобрался с vs code live server и degugger для chrome, ну и как с git в vs code работать пока гоняли меня с компа на комп)))) Спасибо!

  • @vpro5213
    @vpro5213 3 года назад

    Дякую за відео. 👍

  • @pseudonim510
    @pseudonim510 2 года назад

    Почему фоновые изображения могут уезжать бесконечно наверх или вниз? Как ограничить их передвижение?

  • @evesheppard2341
    @evesheppard2341 3 года назад +3

    Блин возьми к себе стажером =) готов за еду работать, да что там, и без еды готов )))

  • @farlawarr
    @farlawarr 3 года назад

    У меня по умолчанию от user agent stylesheet идет margin: 8px для body, это новый хром такой нехороший стал? не нашел обнуления этого маргина в уроке, какое-то время помучался =)
    Еще была проблема, что при настройке параллакса при скролле картинки гор и человека пропадали. Добавление z-index: 2 и 3 в скрипты для трансформа парентов картинок порешали эту проблему.
    Спасибо за труд, Жека!