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 API
vue3+ant design vue 自定义文件上传和自定义上传进度条
1.关键点是Upload组件中customRequest的API,它能通过覆盖默认的上传行为,可以自定义自己的上传实现(具体可看官方文档); 2.通过在Upload组件中绑定progress实现。 下面是详细代码
2896 0
|
JavaScript 前端开发
JS之url进行编码和解码(三种方式)
JS之url进行编码和解码(三种方式)
18891 2
|
移动开发 缓存 JavaScript
微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)
微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)
2725 0
微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)
|
9月前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
6065 2
【vue2】切换页面之后滚动条停留在上个页面的位置,解决方案
【vue2】切换页面之后滚动条停留在上个页面的位置,解决方案
787 6
|
JavaScript
【Vue功能】回到顶部
网页中右下角点击回到顶部的功能,原理简单。
796 0
|
JavaScript 前端开发
Vue 监听某个元素滚动,亲测有效
Vue 监听某个元素滚动,亲测有效
749 0
|
JavaScript 前端开发 CDN
vue项目中使用CDN引入
vue项目中使用CDN引入
2092 1
|
JavaScript 内存技术
nvm 切换版本失效?这个方法100%解决
NVM是一个工具,类似于一个“开关”,可以帮助我们在同一台电脑上安装和切换不同版本的Node.js
6249 1
nvm 切换版本失效?这个方法100%解决
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问