window.scrollTop 不生效的原因,如何解决

简介: window.scrollTop 不生效的原因,如何解决

问题描述


当我想要在移动端项目中设置返回顶部按钮时,需要用到window.scrollTo()这个函数,但是我在设置点击事件后返回顶部不生效。


const Index = (props: Props) => {
  let backTop = () => {
    window.scrollTo({ top: 0, behavior: 'smooth' });
  }
  return (
     <div className='index'>
        <div className='lists'>
          <List>
            {data.map((item, index) => (
              <List.Item key={index}>{item}</List.Item>
            ))}
          </List>
        </div>
        <div className='topBut' onClick={backTop}>^</div>
     </div>
  )
}


原因分析:


经过查阅资料才发现,这个方法,是只给产生滚动条的元素进行返回,而不是window,我这里是给index元素设置了滚动条。


解决方案:


后续就是获取到当前滚动条的页面元素,使用ref获取,之后加上返回顶部的方法即可!


代码:


const Index = (props: Props) => {
  let indexRef = useRef(null);
  let backTop = () => {
    indexRef.current.scrollTo({ top: 0, behavior: 'smooth' });
  }
  return (
    <div className='index' ref={indexRef}>
        <div className='lists'>
          <List>
            {data.map((item, index) => (
              <List.Item key={index}>{item}</List.Item>
            ))}
          </List>
        </div>
        <div className='topBut' onClick={backTop}>^</div>
      </div>
  )
}

目录
相关文章
|
前端开发
el-transfer 数据量过大加载慢卡顿解决办法:el-transfer虚拟滚动懒加载的实现
el-transfer 数据量过大加载慢卡顿解决办法:el-transfer虚拟滚动懒加载的实现
1504 0
|
监控 前端开发 Cloud Native
解决WebSocket通信:前端拿不到最后一条数据的问题
解决WebSocket通信:前端拿不到最后一条数据的问题
862 0
|
5月前
|
人工智能 调度 流计算
AI Agent 出问题时,不要只看最终回答:一次请求级调试的思路
AI Agent出错时,仅看最终回答无法定位根源。本文提出“请求级调试”思路:聚焦system prompt、messages、tools schema、tool call/result及token消耗等关键层,揭示Agent每轮真实输入输出。推荐开源工具ccglass,专为观测AI编程Agent(如Claude Code、Codex)的完整请求链而生,助你从“感觉不对”走向“证据驱动”调试。(239字)
|
5月前
|
人工智能 IDE API
我在调试 AI Coding Agent 时遇到的问题,以及如何做了一个本地可观测工具解决它
ccglass 是一款开源本地代理+仪表盘工具,专为提升 AI 编程助手(如 Claude Code、Codex 等)的可观测性而设计。它通过拦截并记录 Agent 与大模型 API 的完整请求/响应(含 prompt、tool calls、tokens、cost、延迟等),提供实时可视化分析,所有数据仅存本地,无需联网或注册。
|
安全 数据挖掘 API
车辆车型大全 API 实战指南:推动交通行业智能化
车辆车型大全API由探数平台提供,旨在解决企业班车、物流运输及汽车销售等行业对标准化车型数据的需求。传统人工维护车型库效率低且易出错,而该API覆盖主流品牌与车系,包含品牌、车系、销售车型及配置参数等详细信息,适用于车队管理、电商平台及汽车资讯平台。API提供四个子接口:获取品牌、车系、销售车型与配置详情信息,支持高效查询。通过HTTP POST请求即可调用,返回结构化数据,助力企业实现智能化运营与科学决策,在绿色智能交通时代发挥重要作用。
912 4
|
人工智能 自然语言处理 前端开发
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
淘宝推荐信息流业务,常年被“需求多、技术栈杂、协作慢”困扰,需求上线周期动辄一周。WaterFlow——一套 AI 驱动的端到端开发新实践,让部分需求两天内上线,甚至产品经理也能“自产自销”需求。短短数月,已落地 30+ 需求、自动生成 5.4 万行代码,大幅提升研发效率。接下来,我们将揭秘它是如何落地并改变协作模式的。
1770 37
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
|
JavaScript
js监听页面或元素scroll事件,滚动到底部或顶部
js监听页面或元素scroll事件,滚动到底部或顶部
1914 0
js监听页面或元素scroll事件,滚动到底部或顶部
nrm 安装后报错 Error [ERR_REQUIRE_ESM]: require() of ES Module
nrm 安装后报错 Error [ERR_REQUIRE_ESM]: require() of ES Module
1444 0
|
资源调度 JavaScript API
Vue3+TS+Vite开发组件库并发布到npm
这篇文章介绍了如何使用Vue 3、TypeScript和Vite开发一个包含35个常用UI组件和8个API功能函数的组件库`vue-amazing-ui`,并将其发布到npm,同时提供了组件库的安装使用说明和在线预览。
692 2
Vue3+TS+Vite开发组件库并发布到npm
宝塔面板报404
阿里云服务器安装宝塔面板后,通过浏览器管理时报404错误。解决步骤:1. 远程连接服务器,检查面板运行状态,使用命令 `ps -ef | grep panel`;2. 确认访问入口正确,使用命令 `bt 14`;3. 联系官网客服寻求帮助。
1609 1

热门文章

最新文章