I have a code to scroll content horizontally, it works but whenever it scrolls, it scrolls items one by on like breaking, so I want it to scroll smoothly, that is the sample code below, please I need help with it
<style> .child { width: 100px; white-space: nowrap; overflow-x: scroll; } </style> <script> (function(w){ w.addEventListener('load', function(){ const btn_left = document.getElementById('btn-left'), btn_right = document.getElementById('btn-right'), content = document.getElementById('con'); const content_scroll_width = content.scrollWidth; let content_scoll_left = content.scrollLeft; btn_right.addEventListener('click', () => { content_scoll_left += 100; if (content_scoll_left >= content_scroll_width) { content_scoll_left = content_scroll_width; } content.scrollLeft = content_scoll_left; }); btn_left.addEventListener('click', () => { content_scoll_left -= 100; if (content_scoll_left <= 0) { content_scoll_left = 0; } content.scrollLeft = content_scoll_left; }); }); })(window); </script> <div class="parent"> <div class="child" id="con"> Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. Lorem Ipsum. </div> </div> <button id="btn-left">Left scroll</button> <button id="btn-right">Right scroll</button>
Advertisement
Answer
Maybe you can try scroll-behavior: smooth
in your css file. Here is an example.
Or, if you want to do it with JavaScript, try
window.scroll({ top: 2500, left: 0, behavior: 'smooth' });