JavaScript: Implementing Horizontal and Vertical Scrolling on a Single Webpage

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ต.ค. 2024
  • Hi guys.
    Back with another video where we will be implementing vertical and horizontal scrolling on a single webpage.
    We will be using the CSS sticky positioning attribute and Vanilla JavaScript to achieve this effect.
    Please like the video and subscribe if you want to see more tutorials like this!
    Thanks all!
    Conor

ความคิดเห็น • 56

  • @theman7050
    @theman7050 ปีที่แล้ว +1

    King of advanced front-ends ✌🏽😁

  • @Артём-к6ю1г
    @Артём-к6ю1г 11 หลายเดือนก่อน +3

    Thanks a lot!!! 👍👍👍
    Very cool video.
    You told everything very detailed and clear!!!

  • @VidarrKerr
    @VidarrKerr ปีที่แล้ว +1

    ------------------------------ This is awesome! Thank You! ------------------------------
    To go with this, I am going to try to create a persistent sidebar (left, or right) that users can mouse over to go back to vertical scrolling no matter what their position in the horizontal scrolling area. Like a sidebar on the left that as you scroll down the page, it has images and project titles, on the bar. Then, use a scroll snap to snap to each project when centered on the project image and title on the bar. When you hit that point, the horizontal scroll kicks in to display all the project images. When the project images end, the vertical scrolling kicks back in, just like this video shows. At any position, the user can go back to the sidebar to enable the vertical scrolling again.
    I have the code for all of that. But, combining it with this code here is going to be a bi0tch. If I can accomplish this, it will be my dream portfolio for my architectural work.

  • @stephanieegbuonu2626
    @stephanieegbuonu2626 11 หลายเดือนก่อน +2

    Super helpful
    Love the fact that you explained it so well❤

  • @truowng
    @truowng ปีที่แล้ว +5

    Amazing!!! I’ve been waiting for this for a long time. Thank you for sharing 🥰

    • @ConorBailey
      @ConorBailey  ปีที่แล้ว

      Thanks mate! Glad you find it useful 👍🤩

    • @ob5804
      @ob5804 ปีที่แล้ว

      @@ConorBailey Hi. Can you make tutorial of this? - - - - -> Image Grid on Scroll - Bricksbuilder - Bricksforge - GSAP - - - - -> this is the name of the video on TH-cam because TH-cam itself removes the link.

  • @thepalelady
    @thepalelady ปีที่แล้ว +2

    Thanks a ton Conor

  • @niddess
    @niddess ปีที่แล้ว +1

    Very elegant, going to use this !

  • @danaliepinsh8252
    @danaliepinsh8252 9 หลายเดือนก่อน +1

    Thank you so much for this video and your whole channel! it was very helpful

  • @hafizulfitri5546
    @hafizulfitri5546 3 หลายเดือนก่อน

    This is very creative. Clear tutorial.

  • @asdomain4503
    @asdomain4503 ปีที่แล้ว +4

    Was looking for this for months... thanks, great tutorial

  • @abubalo
    @abubalo ปีที่แล้ว +2

    Thank you. I needed this.

  • @Raphaelshreds
    @Raphaelshreds 10 หลายเดือนก่อน +1

    This is awesome! Thanks Conor!

  • @oussamaoutazari9144
    @oussamaoutazari9144 ปีที่แล้ว +1

    Thank you sir, i really appreciate your tutorial

  • @ajaykathait7633
    @ajaykathait7633 8 หลายเดือนก่อน +5

    can you please provide the code as well

  • @tiaanmcleod250
    @tiaanmcleod250 ปีที่แล้ว +1

    Thank you very much keep up the great work

  • @berkipekoglu
    @berkipekoglu ปีที่แล้ว +2

    Awesome! Thank you bro! Please more videos like these :)

    • @ConorBailey
      @ConorBailey  ปีที่แล้ว

      More to come!

    • @ob5804
      @ob5804 3 หลายเดือนก่อน

      @@ConorBailey
      .sticky__parent {
      height: 500vh;
      }
      .scroll__section {
      width: 500vw;
      }
      The question is how to calculate what height .sticky__parent should be and what width .scroll__section should be??
      percentage = percentage < 0 ? 0 : percentage > 400 ? 400 : percentage - where did we get 400?

    • @ConorBailey
      @ConorBailey  3 หลายเดือนก่อน

      @@ob5804 we go to a max of 400 as we still want the final 100vw to remain on the screen. So 500vw - 400vw = 100vw. Does that make sense?

    • @ob5804
      @ob5804 3 หลายเดือนก่อน +1

      @@ConorBailey I have 6 pictures, so percentage = percentage < 0 should be in the script? 0 : percentage > 600 ? 600 : percentage, and in styles .sticky__parent {
      height: 600vh;
      } .scroll__section {
      width: 600vw;} and the pictures are 400px, but still there is a lot of empty space after the pictures in .scroll__section(((

  • @amanuelabiy7077
    @amanuelabiy7077 4 หลายเดือนก่อน

    This was really helpful, thank you very much.

  • @ramielsonedgar2095
    @ramielsonedgar2095 6 หลายเดือนก่อน

    Cool, exactly what i need! Thank you!

  • @owentobias21
    @owentobias21 3 หลายเดือนก่อน +1

    its a very good approach, but wouldnt it be better if the height follow the content inside instead of being defined from the beginning?

  • @zhanezar
    @zhanezar ปีที่แล้ว +2

    hi Conor , if you can please could you do a tutorial using threejs and infinite scrolling gallery with different sized image planes

  • @DeanWitherton
    @DeanWitherton ปีที่แล้ว +1

    Amazing!!!!!!!!!

  • @ajaykathait7633
    @ajaykathait7633 8 หลายเดือนก่อน +1

    Thanks bro

  • @hellothere8547
    @hellothere8547 ปีที่แล้ว +1

    Awesome! 👍

    • @ConorBailey
      @ConorBailey  ปีที่แล้ว

      Thanks mate. Always appreciate your support! Legend

  • @mikemelon
    @mikemelon 6 หลายเดือนก่อน

    great stuff. I learnt a lot thx

  • @mariobaq117
    @mariobaq117 2 หลายเดือนก่อน

    thank you for the tutorial, it works great! I have a question: What happens if the scroll container is not 100vh but has a static height like 500px? Is it possible?

  • @harisali8007
    @harisali8007 9 หลายเดือนก่อน +1

    Is This transitions are possible with fixed screen ? Means 1 slide view on entire screen on scrolling

  • @ChiragEmpyreal
    @ChiragEmpyreal ปีที่แล้ว +2

    thanks.

  • @bblp700
    @bblp700 9 หลายเดือนก่อน +1

    can this effect be achieved with lerp function for easing effect?

  • @libcanbe2474
    @libcanbe2474 ปีที่แล้ว +1

    You are tooo goood

  • @afshankhan9532
    @afshankhan9532 ปีที่แล้ว +1

    You saved my day.

  • @minhsonphan7545
    @minhsonphan7545 ปีที่แล้ว

    Amazing, Conor! I've watched many of your videos, and you're truly an expert in Vanilla JS. Could you please share your learning path for JavaScript? Thank you!

  • @pritampattnaik2005
    @pritampattnaik2005 ปีที่แล้ว +1

    Can u add text between the images?

  • @romain9026
    @romain9026 ปีที่แล้ว +3

    link code ?

  • @DeepakSingh-n2g
    @DeepakSingh-n2g ปีที่แล้ว +2

    Why 500vh and 500vw? Why not 1000? Any reason for that number? What if I have 100 images?

    • @elliott41
      @elliott41 ปีที่แล้ว +1

      you can use that just adjust accordingly

  • @ashifurrahaman8926
    @ashifurrahaman8926 2 หลายเดือนก่อน

    top :0 not working after smooth scroll by lerp function, any help will be appreciated

  • @VladyslavChapiuk
    @VladyslavChapiuk 8 หลายเดือนก่อน +1

    You actually do not need to set any width that equals the height anywhere. Also using transform is not that good as just setting the scrollX of our sticky scrollable component. Also no need to set `position: absolute;` to the child. Keep things simple.

    • @ConorBailey
      @ConorBailey  8 หลายเดือนก่อน

      Cool cheers for sharing! Why don’t you make a video on it? Share your knowledge! You clearly know it all! 😉

    • @VladyslavChapiuk
      @VladyslavChapiuk 8 หลายเดือนก่อน

      @@ConorBailey Now you know it as well. Enjoy ;)

  • @bryanortiz2098
    @bryanortiz2098 8 หลายเดือนก่อน +1

    Thaks for all

  • @adaferraramirenzi3269
    @adaferraramirenzi3269 3 หลายเดือนก่อน

    and if i use image that are in my folder howi can do it?

  • @ob5804
    @ob5804 3 หลายเดือนก่อน

    How to make the .sticky block have the width of the content in the .scroll__section block? I have 6 images
    .sticky__parent {
    height: 600vh;
    }
    scroll__section {
    height: 100%;
    width: 600vw;
    display: flex;
    /* justify-content: space-between; */
    align-items: center;
    gap: 50px;
    }
    img {
    width: 400px;
    height: 80%;
    object-fit: cover;
    object-position: center;
    }

  • @mnvshr
    @mnvshr ปีที่แล้ว

    thank you

  • @Gaulois_NRV
    @Gaulois_NRV ปีที่แล้ว +1

    hey ! why translate3d and not translateX ? thx

    • @ConorBailey
      @ConorBailey  ปีที่แล้ว +1

      I read that using translate3d generally performs better / faster in most browsers here: stackoverflow.com/questions/22111256/translate3d-vs-translate-performance
      Although I don’t believe it makes too much difference to be honest 😅
      Cheers!

  • @blackrandall
    @blackrandall 4 หลายเดือนก่อน

    Belly belly good....they see me scrolling 😎😎

  • @sanjaysanthosh1149
    @sanjaysanthosh1149 6 หลายเดือนก่อน

    😇