javascript - 如何在中间居中单击并拖动滚动条

标签 javascript html css

我正在关注 Wes Bos 30 天 JavaScript 挑战和第 27 天:单击并拖动教程 我想知道如何将 slider 居中在中间位置而不是第一个(最左边)的位置?

const slider = document.querySelector('.items');
let isDown = false;
let startX;
let scrollLeft;
slider.addEventListener('mousedown', (e) => {
  isDown = true;
  slider.classList.add('active');
  startX = e.pageX - slider.offsetLeft;
  scrollLeft = slider.scrollLeft;
});
slider.addEventListener('mouseleave', () => {
  isDown = false;
  slider.classList.remove('active');
});
slider.addEventListener('mouseup', () => {
  isDown = false;
  slider.classList.remove('active');
});
slider.addEventListener('mousemove', (e) => {
  if (!isDown) return; // stop the fn from running
  e.preventDefault();
  const x = e.pageX - slider.offsetLeft;
  const walk = (x - startX) * 3;
  slider.scrollLeft = scrollLeft - walk;
});
<div class="items">
  <div class="item item1">01</div>
  <!-- Scroll starts here -->
  <div class="item item2">02</div>
  <div class="item item3">03</div>
  <div class="item item4">04</div>
  <div class="item item5">05</div>
  <div class="item item6">06</div>
  <!-- I want to start here-->
  <div class="item item7">07</div>
  <div class="item item8">08</div>
  <div class="item item9">09</div>
  <div class="item item10">10</div>
  <div class="item item11">11</div>
  <div class="item item12">12</div>
</div>

我发现以我想要的方式工作的代码是 this SO ask 的答案,但是当我在 Wes Bos 的代码中实现它时,我再也无法点击和拖动了。

这是关于 YouTube 的可视化示例.

最佳答案

在脚本的开头(在 <script> 标记之后)执行类似的操作:

const startingEl = document.querySelector(".item.item6");
window.scrollTo(0, startingEl.offsetTop);

关于javascript - 如何在中间居中单击并拖动滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54914726/

相关文章:

Javascript检查CSS类是否在没有Jquery的页面上

css - 可以在 BEM 中为一个类使用多个修饰符吗?

php - 将 ajax 调用获取的数据返回到另一个函数

javascript - 当回调触发手动表单提交时,不会调用 jQuery 表单提交处理程序

javascript - HTML5 和 CSS3 搞砸了

html - 使 Bootstrap 输入看起来像 selectize.js 组件中的 input-sm

html - 将全高绝对元素定位在相对元素中

javascript - <输入类 ="btn btn-default btn-sm users-btn"> 带下划线的文本问题

javascript - jQuery - 页面底部按钮和外部站点链接

javascript - 仅 onClick 的 onLoad 功能