踩坑日记:scrollIntoView的踩坑记录

甲方需求

  • 组织架构选择器的左列实现选中并完成自动剧中的效果

技术栈

  • vue3
  • element-plus

组件构成

  • 左侧: Tree 树形控件
  • 右侧: Collapse 折叠面板

过程

1.查看组件API,查看是否有相关API

diff 复制代码
- 开开心心的打开element-plus官网,找到Tree 树形控件,点击方法;
  • 没有相关API,芭比扣了

2.询问char-GPT如何实现

  • 嘴角忍不住的上扬,这还不拿捏!
sql 复制代码
  console.log('获取选中节点的信息',dialogTree.treeRef.getNode(current));
  • 怎么不一样!我的 treeNode.$el 尼!

  • 凉凉夜色为你思念成河

3.推倒重来,重构思路

  • 1.确定API:scrollIntoView
  • 2.要它滚动可视区域中间就需要;

    • 是一个"Element"元素
    • 通过scrollIntoView参数来使元素滚动到视图中央
    css 复制代码
        Element?.scrollIntoView({ block: 'center' })

4.实现

  • 如何获取他是一个"Element"元素?通过插槽生成动态且唯一的class

    ini 复制代码
           <template #default="{ data }">
                      <span class="custom-tree-node" :class="`treeItem_${data.orgId}`">
                        <span
                          class="iconfont m_rl_2"
                          :class="
                            data.orgType == 1
                              ? 'theme_color icon-jituan'
                              : data.orgType == 2
                              ? 'yellow_color icon-gongsi'
                              : 'cyan_color icon-bumen'
                          "
                        />
                        {{ range === '3' ? `${data.superAllOrgName}-` : '' }}{{ data.orgName }}
                      </span>
                    </template>
  • 获取要滚动的节点

typescript 复制代码
     const selectedNode: any = document.querySelector(`.treeItem_${current}`)
     
  • 执行API
css 复制代码
    selectedNode?.scrollIntoView({ block: 'center' })

5.效果

相关推荐
Dragon Wu2 分钟前
Electron Forge集成React Typescript完整步骤
前端·javascript·react.js·typescript·electron·reactjs
芳草萋萋鹦鹉洲哦3 分钟前
【Tailwind】动画解读:Tailwind CSS Animation Examples
前端·css
华仔啊5 分钟前
jQuery 4.0 发布,IE 终于被放弃了
前端·javascript
一心赚狗粮的宇叔10 分钟前
03.Node.js依赖包补充说明及React&Node.Js项目
前端·react.js·node.js
子春一12 分钟前
Flutter for OpenHarmony:音律尺 - 基于Flutter的Web友好型节拍器开发与节奏可视化实现
前端·flutter
JarvanMo12 分钟前
150万开发者“被偷家”!这两款浓眉大眼的 VS Code 插件竟然是间谍
前端
亿元程序员13 分钟前
大佬,现在AI游戏开发教程那么多,你不搞点卖给大学生吗?
前端
未来龙皇小蓝24 分钟前
RBAC前端架构-02:集成Vue Router、Vuex和Axios实现基本认证实现
前端·vue.js·架构
空白诗30 分钟前
高级进阶 React Native 鸿蒙跨平台开发:slider 滑块组件 - 进度条与评分系统
javascript·react native·react.js
晓得迷路了38 分钟前
栗子前端技术周刊第 116 期 - 2025 JS 状态调查结果、Babel 7.29.0、Vue Router 5...
前端·javascript·vue.js