javascript - 使用 HTML & JS 将垂直和水平滚动事件转换为水平滚动
问题描述
我正在使用 React.js 开发一个水平滚动的投资组合网站。本质上,它只是一个侧面的图片库,您可以使用触控板轻松滚动浏览。
目前,这一切都适合一个大容器,它使用:
overflow-x: scroll;
overflow-y: none;
-ms-overflow-style: none;
scrollbar-width: none;
最近我意识到这个网站对于使用鼠标和台式电脑的人来说是不可用的,因为据我所知鼠标不能横向滚动,除非有一个滚动条(出于审美原因我不想添加)或某种 y 到 x 滚动转换。
现在我正在尝试实现这种滚动转换,以防用户无法水平滚动。我找到了这个解决方案,但无法让它正常工作:
const scroller = document.getElementById('pageContainer');
window.addEventListener('wheel', e => {
scroller.scrollLeft += e.deltaY;
});
上面的代码片段有效地打破了我的两种滚动方式。垂直滚动将我的页面容器非常轻微地向左滚动,大约是正常滚动速度的 1/12,如果不是更少的话。以前工作的水平滚动现在似乎与另一个滚动“战斗”,并将页面猛拉到正确的方向或结结巴巴。
我错过了什么?实现这一目标的最干净的方法是什么?
理想情况下,如果我以圆周运动“滚动”,我希望滚动以正弦运动的方式左右移动。
编辑:
我找到了一个可以实现所需行为并实现它的 codepen: https ://codepen.io/aaaaaaaz/pen/OJpXBXM
它仍然不起作用,但它给了我尝试scroll-behavior: smooth;
在我的 css 中禁用的想法——我将它用于按钮,以编程方式更快地滚动到页面的其他部分。
现在的新问题是,有没有办法让这些东西协同工作?
解决方案
请在您想要在投资组合网站上添加水平滚动的 div 样式中添加高度和宽度
#content {
height: 100%;
width: 9000px;
}
推荐阅读
- javascript - 函数接受名称数组并返回带有编号名称的字符串
- python - Python中对导数有约束的多项式的最小二乘逼近
- java - 如何在 Standalone Jetty 中为静态页面添加一些页脚注释 (msg):http://localhost:8080/jcg/
- e-commerce - 如何从 Magento 2 Checkout 中的报价中获得折扣
- node.js - 以异步方式在节点中使用加密随机字节
- flutter - 为什么我无法在我的 32 位 windows 10 机器上安装颤振?
- javascript - 选择一个号码
- dax - 有更快的平均值吗?
- r - 将 xml 文件解析为具有重复下标的 R 并给出重复的行?
- javascript - 是否可以使用 nodejs 直接写入 gcp 中托管的文件