所以我有一个固定宽度的组件,带有一个overflow-x-auto.我决定隐藏滚动条,并用左右两个箭头/按钮替换它.如果我点击左键,它会向左滚动,反之亦然.如何实现此功能?

这是我的组件

<div className={` vertical-card w-7/12 flex flex-row overflow-x-scroll no-scrollbar pb-4`}>
            {
                dataConselor.map((item, index) => {
                    return <VerticalCard key={item.id} name={item.nama} specialist={item.specialist} shortdesc={item.shortdesc} img={item.img} />
                })
            }

        </div>

推荐答案

  1. 以可滚动元素为目标(可以使用useRef,因为它是react):
const scrollable = useRef(null);

<div id="myElement" ref={scrollable}>
...
</div>
  1. 创建滚动功能:
const scrollIt = (toRight) => {
  const scrollLength = ... //Calculate your scroll length however you want.
  scrollable.current.scrollBy({left: scrollLength * (toRight ? 1 : -1), behavior: "smooth"});
}
  1. 将此功能添加到左/右按钮:
<div id="toLeft" onClick={()=>scrollIt(false)}>...</div>
<div id="toRight" onClick={()=>scrollIt(true)}>...</div>

Javascript相关问答推荐

Vue Quill css仅应用于我的第一个Quill Editor组件+如何自定义工具栏

我试图实现用户验证的reduxstore 和操作中出了什么问题?

每次子路由重定向都会调用父加载器函数

IMDB使用 puppeteer 加载更多按钮(nodejs)

使用续集和下拉栏显示模型属性

Javascript,部分重排序数组

Angular中计算信号和getter的区别

使用i18next在React中不重新加载翻译动态数据的问题

如何修复我的js构建表每当我添加一个额外的列作为它的第一列?

在react js中使用react—router—dom中的Link组件,分配的右侧不能被 destruct ''

将现场录音发送到后端

在拖放时阻止文件打开

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

无法读取未定义错误的属性路径名''

如何使用子字符串在数组中搜索重复项

如何在文本字段中输入变量?

使用领域Web SDK的Vite+Vue应用程序中的Web程序集(WASM)错误

如果一个字符串前面有点、空格或无字符串,后面有空格、连字符或无字符串,则匹配正则表达式

Phaser3 preFX addGlow不支持zoom

为什么这个最小Angular 的Licial.dev设置不起作用?