Is There A Way To Make Horizontal Scrolling Smoother
This fiddle is almost what I'm looking for, I got it from MDN. The only thing missing is that I want to make it smoother. Is there a way to do that without using jQuery or any othe
Solution 1:
This could probably be optimised a fair bit, but here is a basic example of how you could do it using setInterval
and clearInterval
Update
Here is another example of it wrapped into a function instead, bit easier to tweak the speed etc.
Solution 2:
You can also use the .scrollTo method. I've modified the jsFidlle with this javascript :
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTo
var container = document.getElementById('container');
var input = document.getElementById('content');
var scrollAmount = 0;
var scrollMin = 0var scrollMax = input.clientWidthdocument.getElementById('slide').onclick = function () {
container.scrollTo({
top: 0,
left: Math.max(scrollAmount += 500, scrollMax),
behavior: 'smooth'
});
};
document.getElementById('slideBack').onclick = function () {
container.scrollTo({
top: 0,
left: Math.min(scrollAmount -= 500, scrollMin),
behavior: 'smooth'
});
};
Solution 3:
Add scroll-behavior: smooth;
to the scroll element. I feel it better
Solution 4:
If you don't want to keep track of the scroll position, you can use scrollBy instead of scrollTo.
container.scrollBy({
top: 0,
left: +500,
behavior: 'smooth'
})
Solution 5:
Adding scroll-behavior: smooth;
to #container
will make it smooth.
Here is example on this Fiddle
Post a Comment for "Is There A Way To Make Horizontal Scrolling Smoother"