【React】pc端实现无滚动条 鼠标样式滑动,

该文章介绍了一种使用JavaScript实现PC端内容区域通过鼠标拖动来控制隐藏横向滚动条滚动的方法。通过监听鼠标事件,动态计算鼠标位置并更新元素的left值,从而实现平滑的滚动效果。核心代码涉及useStatehooks和DOM操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以先阅读如下文章,在读此文:

js 实现pc端鼠标拖动触发横向滚动条的滚动(隐藏的滚动条)_js横向滚动条_草字的博客-优快云博客

效果描述:

一定区域,可用鼠标进行滑动实现滑动展示内容

思路:

        鼠标滑动后检测鼠标位置,再改变对应标签离左侧的距离

代码:

  //4张卡片滑动需要的参数
  const [downX, setDownX] = useState(0);
  const [moveX, setMoveX] = useState(0);
  const [scrollX, setScrollX] = useState(0);
  const drawRef = useRef(null);
  const [scrollFlag, setScrollFlag] = useState(true);
  const [scrollPosition, setScrollPosition] = useState(0);

  const getMouseStart = (e) => {
    setScrollFlag(true)
    setDownX(e.clientX)
    setScrollPosition(drawRef.current.scrollLeft)
  };

  const getMouseMove = (e) => {
    if (scrollFlag) {
      const container = drawRef.current;
      setMoveX(e.clientX);
      setScrollX(moveX - downX);
      if (scrollX < 0 && scrollPosition > 0) {
        console.log('scX ', scrollX)
        container.scrollLeft = scrollPosition - scrollX;
        setScrollPosition(scrollPosition - scrollX);
      } else {
        container.scrollLeft = scrollPosition - scrollX;
        setScrollPosition(scrollPosition - scrollX);
      }
    }
  };

{/*以下是渲染部分的内容*/}
<div className='scroll-container no_copy' ref={drawRef} onMouseDown={getMouseStart} onMouseMove={getMouseMove} onMouseUp={getMouseUp}>
{/* 滑动的具体内
样式属性:
 .outer-container {
  overflow-x: scroll !important;
  // border: 5px solid purple;
  // flex-shrink: 0;
  // width: 950px;
  position: relative;
}
.scroll-item {
  flex-shrink: 0;
  display: inline-flex;
}

 */}
<div className='scroll-item'  >
</div>
</div>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J_Emiya_Kiritsugu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值