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获取,之后加上返回顶部的方法即可!

代码:文章来源地址https://www.toymoban.com/news/detail-652427.html

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

到了这里,关于window.scrollTop 不生效的原因,如何解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • scrollTop、clientHeight、 scrollHeight...学完真的理解了

    在开发中我们常常会用到判断滚动条是否触底的逻辑。我一般都会在网上搜一段代码,这段代码有用到scrollTop、clientHeight、 scrollHeight 。接着我简单看一下好像理解了,再在项目里用一下好使了就没去深入研究相关概念。等下次用到了还是搜一下,自己写不出来…于是笔者想

    2024年01月19日
    浏览(21)
  • offsetTop、clientTop、scrollTop等属性详解【概念+详细例子分析】

    MDN中offset… offsetWidth/offsetHeight :对象的可见宽度 offsetLeft/offsetTop: 当前元素距浏览器边界的偏移量,以像素为单位。 1、 offsetTop、offsetLeft offsetTop:元素到offsetParent顶部的距离(当前元素顶部距离最近父元素顶部的距离) offsetParent:距离元素最近的一个具有定位的祖宗元素(

    2024年02月11日
    浏览(33)
  • 使用scrollTo/scrollTop让页面元素滚动到指定位置, 并设置滚动动画

    当容器有滚动条时,有时需要点击 试图 或 节点 将页面滚动到指定元素位置 比如父元素设置了 overflow: hidden; ,当元素里的内容超过元素本身的高度时, 就会出现滚动条, 那么鼠标滑动的距离就是其滚动距离. scrollTop属性 scrollTop 就是指 “元素中的内容” 超出 “元素上边界” 的

    2023年04月27日
    浏览(79)
  • Spring的定时任务不生效、不触发,一些可能导致定时任务没有生效的原因,和具体的解决方法。Spring框架的定时任务不生效或者不触发的原因

    1. 未开启定时任务 : 原因 :未在Spring Boot应用主类上添加 @EnableScheduling 注解或未在XML配置文件中配置定时任务的启用。 解决方法 :确保在应用的配置类上添加 @EnableScheduling 注解,启用定时任务。 2. 定时任务方法的访问权限问题 : 原因 :定时任务的方法可能被设置为私有

    2024年02月03日
    浏览(57)
  • 关于element-ui中表单重置不生效的原因,及解决方法

    resetFields这个方法是将表单重置为 初始值 , 也就是说,是将表单中的数据重置为dom节点渲染时的值,而不是重置为空对象。 也就是说,当你的表单数据,是在dom节点渲染前被赋值的,那么他的初始值就不为空了。 还有就是vue中对象是不能直接赋值给另一个对象的 解决方法

    2024年02月13日
    浏览(41)
  • vue项目中beforeDestroy和destroyed 钩子不起作用或者说不生效的原因和解决办法

    项目中,在destroyed 写了东西,不生效,后来发现beforeDestroy也没走,就很好奇,为什么?进来的程序猿/程序媛是不是和我一样呢? ** ** 这时候排查原因,不断的找,最后发现,很简单,keep-alive的原因,keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实

    2024年02月13日
    浏览(39)
  • 苹果ios iphone safari浏览器javascript中alert和confirm不生效解决办法

     在iOS Safari中,可能会遇到JavaScript Alert弹窗不起作用的问题。这是由于iOS Safari默认会阻止弹出窗口,包括JavaScript Alert弹窗。解决此问题的方法如下: 1.使用其他弹窗方式替代JavaScript Alert弹窗,例如使用自定义弹窗组件或者使用JavaScript模拟弹窗。 2.如果必须使用JavaScript Al

    2024年02月14日
    浏览(67)
  • vue自学,window.addEventListener不生效解决方案

    vue自学,window.addEventListener不生效解决方案!最近在网上跟着别人的教程视频自学vue,在给window对象添加监听事件后,发现起初,一直没有效果。找不到原因,比较困惑。 如图,这是老师视频里面的截图代码。 我自己太马虎了。自己的代码里写的时候,多了一个小括号,导致

    2024年02月11日
    浏览(33)
  • 移动端H5使用window.open跳转,IOS不生效解决

    前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的。包括语音识别、机器翻译等从基础到实战都有,很详细,分享给大家。大家及时保存,说不定啥时候就没了。 navigator navigator对象,用于提供当前浏览器及操作系统等信息,这些信息都放

    2024年02月11日
    浏览(46)
  • eslint不生效原因

    eslint在其他项目都生效,但是某个项目不生效??? 目前的主要的几种原因 vscode中eslint不生效原因 - 简书 我的解决步骤: 此时提示我:Cannot find package \\\'prettier\\\' imported from...... 然后npm install prettier,重启vscode即可

    2024年02月04日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包