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

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

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

效果描述:

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

思路:

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

代码:

  //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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
React 中修改滚动条样式可以通过 CSS 样式实现。你可以使用 `::--scrollbar` 伪元素和相关属性自定义滚动条样式。 首,在你的 CSS 文件或样式模块,可以使用 `::-webkit-scrollbar` 选择器来选中滚动条元素。例如: ```css /* 修改滚动条样式 */ ::-webkit-scrollbar { width: 8px; /* 指定滚动条的宽度 */ } /* 修改滚动条的轨道样式 */ ::-webkit-scrollbar-track { background-color: #f1f1f1; /* 指定滚动条轨道的背景色 */ } /* 修改滚动条的滑块样式 */ ::-webkit-scrollbar-thumb { background-color: #888; /* 指定滚动条滑块的背景色 */ border-radius: 4px; /* 指定滚动条滑块的圆角半径 */ } /* 修改滚动条滑块在 hover 状态下的样式 */ ::-webkit-scrollbar-thumb:hover { background-color: #555; /* 指定滚动条滑块的背景色 */ } ``` 然后,将这些样式应用到需要定制滚动条的组件或容器上。你可以使用 `className` 属性将类名应用到相应的元素上,或者使用内联样式来设置。 ```jsx import React from 'react'; import './CustomScrollbar.css'; // 引入样式文件 const CustomScrollbar = () => { return ( <div className="custom-scrollbar"> {/* 内容 */} </div> ); } export default CustomScrollbar; ``` 这样,你就可以根据自己的需求来修改滚动条样式。请注意,在不同的浏览器和操作系统中,滚动条样式可能会有所差异,因此你可能需要针对不同的浏览器和操作系统进行调整和兼容处理。
评论 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、付费专栏及课程。

余额充值