javascript - 鼠标“单击并拖动”滚动行为和 CSS 滚动捕捉
问题描述
我正在构建一个简单的滑块动画,该动画使用本机 CSS 滚动捕捉和滚动事件监听器进行控制。您可以在这里看到一个工作示例:https ://codepen.io/juliangarnier/pen/10d5ad6a2d9bf2cbac8e8d2e289153fa
我正在尝试在桌面上添加单击和拖动行为,不幸的是,当 scrollLeft 值为通过 JavaScript 更新。它可以通过设置scroll-snap-type: none;
用户何时开始拖动但删除平滑的捕捉动画来工作。
我注意到在 Chrome 开发工具中模拟触摸事件时,滚动动画在使用鼠标时效果很好。我想知道是否可以重新创建 Chrome 开发工具在纯 JS 中使用的相同类型的触摸事件仿真。或者,如果有人设法scroll-snap-type: x mandatory;
在保持捕捉动画的同时手动更新元素的滚动位置。
编辑:
这是示例的更新版本,其中鼠标事件使用
el.scrollTo({
left: newScrollLeft,
behavior: 'smooth'
})
在mouseup
事件上,并切换 scroll-snap 属性。
https://codepen.io/juliangarnier/pen/b3bc58f943768f5276563ae7077e41e0?editors=0100
它非常接近我想要的,但仍然缺少使用正常滚动手势时出现的滚动势头。
解决方案
推荐阅读
- c++ - 尝试使用 C++ 中的构造函数从类继承时出错
- python-3.x - openpyxl - While 循环无限运行,尽管 IF 条件中的类似逻辑运行良好。不知道问题出在哪里
- unix - 在 UNIX / IBM AIX 中是否有“查看 .tar.Z 的内容”的命令
- qt - 如何在 QTreeWidget 中交替空白颜色?
- kubernetes - 工作节点与主节点的关系?
- reactjs - apollo-client, onError, ApolloProvider, client.writeData(localstate) ... 服务器返回 401 时如何处理对用户的身份验证
- python-3.x - selenium.common.exceptions.WebDriverException:消息:无法找到 firefox 二进制文件。您可以通过指定“firefox_binary”的路径来设置它
- javascript - 是否有 Google analitics.js 的非混淆源代码?
- html - 对于 xml 1.0 ISO-8859-1,许多浏览器替换了不间断空格
- java - 从 actor 系统之外观察一个 Akka actor