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>
              
相关推荐
学习非暴力沟通的程序员6 分钟前
Karabiner-Elements 豆包语音输入一键启停操作手册
前端
Jing_Rainbow13 分钟前
【 前端三剑客-39 /Lesson65(2025-12-12)】从基础几何图形到方向符号的演进与应用📐➡️🪜➡️🥧➡️⭕➡️🛞➡️🧭
前端·css·html
刘羡阳17 分钟前
使用Web Worker的经历
前端·javascript
发现一只大呆瓜19 分钟前
JS-类型转换:从显式“强制”到隐式“魔法”
javascript
!执行26 分钟前
高德地图 JS API 在 Linux 系统的兼容性解决方案
linux·前端·javascript
Gooooo28 分钟前
现代浏览器的工作原理
前端
发现一只大呆瓜32 分钟前
JS-ES6新特性
javascript
kk晏然1 小时前
TypeScript 错误类型检查,前端ts错误指南
前端·react native·typescript·react
纆兰1 小时前
汇款单的完成
前端·javascript·html
酷酷的鱼1 小时前
2026 React Native新架构核心:JSI底层原理与老架构深度对比
react native·react.js·架构