react将选中本文自动滑动到容器可视区域内

js 复制代码
    // 自动滚动到可视区域内
    useEffect(() => {
        const target = ref;
        const wrapper = wrapperRef?.current;
        if (target && wrapperRef) {
            const rect = target.getBoundingClientRect();
            const wrapperRect = wrapper.getBoundingClientRect();
            const isVisible = rect.bottom <= wrapperRect.bottom && rect.top >= wrapperRect.top;
            if (!isVisible) {
                wrapper.scrollTo({ top: rect.top, behavior: 'smooth' });
            }
            console.log('isVisible', isVisible);
        }
    }, [avaliableIndex]);
html 复制代码
 <div className={ve.defaultWrapper} ref={wrapperRef}>
            {content.map((text, index) => (
                <p
        
                    ref={(r) => {
                        if (isSelectedRow(index)) {
                            ref = r;
                        }
                    }}
                ></p>)}
                </div>
              
相关推荐
带着梦想扬帆启航5 小时前
UniApp 多个异步开关控制教程
前端·javascript·uni-app
小高0075 小时前
JavaScript 内存管理是如何工作的?
前端·javascript
是大林的林吖5 小时前
解决 elementui el-cascader组件懒加载时存在选中状态丢失的问题?
前端·javascript·elementui
鹏仔工作室5 小时前
elemetui中el-date-picker限制开始结束日期只能选择当月
前端·vue.js·elementui
一 乐5 小时前
个人博客|博客app|基于Springboot+微信小程序的个人博客app系统设计与实现(源码+数据库+文档)
java·前端·数据库·spring boot·后端·小程序·论文
默 语6 小时前
Electron 应用中的系统检测方案对比与鸿蒙适配实践
javascript·electron·harmonyos·gwo
sTone873756 小时前
Android Room部件协同使用
android·前端
Zyx20076 小时前
JavaScript 异步编程深度解析(上):单线程、事件循环与异步的本质
javascript
晴殇i6 小时前
前端代码规范体系建设与团队落地实践
前端·javascript·面试
用户74054639943096 小时前
Vite 库模式输出 ESM 格式时的依赖处理方案
前端·vite