Javascript 有没有办法使水平滚动更平滑

Javascript 有没有办法使水平滚动更平滑,javascript,horizontal-scrolling,Javascript,Horizontal Scrolling,这把小提琴几乎就是我要找的,我是从他那儿买来的。唯一缺少的是我想让它更平滑。有没有一种不用jQuery或任何其他插件就能做到这一点的方法 这可能会得到一些优化,但下面是一个基本示例,说明如何使用setInterval和clearInterval 更新 这里是另一个将其包装到函数中的示例,更容易调整速度等 您可以使用jquery垂直执行,尽管我确信它可以调整为水平执行。演示是 cfernandi也添加了一个javascript平滑滚动条 也请检查一下 您还可以使用.scrollTo方法。我已经用

这把小提琴几乎就是我要找的,我是从他那儿买来的。唯一缺少的是我想让它更平滑。有没有一种不用jQuery或任何其他插件就能做到这一点的方法


这可能会得到一些优化,但下面是一个基本示例,说明如何使用
setInterval
clearInterval

更新

这里是另一个将其包装到函数中的示例,更容易调整速度等


您可以使用jquery垂直执行,尽管我确信它可以调整为水平执行。演示是

cfernandi也添加了一个javascript平滑滚动条

也请检查一下


您还可以使用.scrollTo方法。我已经用这个javascript修改了:


如果不想跟踪滚动位置,可以使用scrollBy而不是scrollTo

  container.scrollBy({
    top: 0,
    left: +500,
    behavior: 'smooth'
  }) 

添加
滚动行为:平滑到滚动元素。我感觉好多了

添加
滚动行为:平滑
#容器
将使其平滑


下面是一个例子

我知道你不想使用插件,但我发现了一个普通的JavaScript库,可以使用不使用jQuery的轻松函数平滑滚动(看起来这相对比较复杂):在Hi@Rachel编写代码感谢这些解决方案,但是,我选择了nick的答案,因为我只需要一个非常简单的解决方案+1@AdrianEnriquez总是乐于助人的可能在将来派上用场:)我认为这是最好的答案,用最新的提琴也很简单,谢谢@nick!哇,你真棒。非常感谢您的功能,非常感谢。对于不知道的人,这是一个CSS属性,您需要添加到可滚动元素中。例如,
#scrollMe{overflow-x:auto;scroll behavior:smooth;}
这在Safari中目前不起作用。ScrollToOptions在Safari中不起作用。
$(function() {
  $('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
      if (target.length) {
        $('html,body').animate({
          scrollTop: target.offset().top
        }, 1000);
        return false;
      }
    }
  });
});
var container = document.getElementById('container');
var input = document.getElementById('content');
var scrollAmount = 0;
var scrollMin = 0
var scrollMax = input.clientWidth

document.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'
  });
};
  container.scrollBy({
    top: 0,
    left: +500,
    behavior: 'smooth'
  })