【发布时间】:2021-10-26 19:16:54
【问题描述】:
【问题讨论】:
标签: javascript node.js reactjs angularjs event-handling
【问题讨论】:
标签: javascript node.js reactjs angularjs event-handling
您可能正在寻找名为 embla.clickAllowed() 的 Embla 选择加入方法。我不知道你使用的是 VanillaJS 还是 ReactJS 版本的 Embla。无论如何,示例用法看起来是这样的:
const onSlideClick = useCallback((index) => {
if (!embla || !embla.clickAllowed()) return
// Embla says the pointer interaction was a static click, and not a drag move.
// Do your magic here...
}, [embla])
<div className="embla__container">
{slides.map((slide, index) => {
<div className="embla__slide" onClick={() => onSlideClick(index)}>
...
</div>
})}
</div>
如果指针触摸,Embla 将:
如果指针是鼠标,Embla 将:
这种设计选择背后的原因是触摸指针滚动文档。当文档在触摸设备上原生滚动时,它会阻止点击,直到用户停止滚动并在完成后再次点击。
但鼠标指针不用于滚动文档,除非您拖动滚动条。而且,如果您拖动滚动条,它将防止您意外单击网页上的任何内容,因为指针位于滚动条区域内。所以这里的假设是我们可以更加确定鼠标指针的点击是有意的。
链接
【讨论】: