首页 > 其他分享 >scrollIntoView返回顶部失效问题

scrollIntoView返回顶部失效问题

时间:2023-07-04 16:44:07浏览次数:47  
标签:滚动 scrollIntoView 元素 顶部 失效 页面

背景:

在vue项目中进入页面使用了 scrollIntoView 方法让页面滚动回顶部,同样的详情页面发现有的可以返回顶部,但是有的失效。

代码如下:

import { onBeforeRouteUpdate } from "vue-router";

onBeforeRouteUpdate((to, from) => {
  setTimeout(() => {
    document.getElementById("main").scrollIntoView({
      behavior: "smooth",
      block: "start",
    });
  }, 300);
});

解决:

在经过对比排查之后,发现失效的页面获取数据的接口响应时间超出了300ms,即上面设置的定时器的时间。猜测是因为数据没渲染好便执行了 scrollIntoView 方法,导致滚动失效。把定时器事件改为500ms后问题得到解决。也可以在保证数据渲染完毕后再执行该方法。

一些已知的 scrollIntoView 生效的前提条件:

  1. 元素的 CSS 属性 overflow 必须设置为 scroll 或 auto,或者其父级元素的 overflow 属性设置为 scroll 或 auto,以确保滚动条可见。
  2. 元素的高度必须大于容器的高度,否则无需滚动。
  3. 元素的 display 属性不能设置为 none,否则元素将不可见且无法滚动。
  4. scrollIntoView 方法必须在已经完成页面的加载和渲染之后调用,否则可能无法正确滚动到指定的元素。

标签:滚动,scrollIntoView,元素,顶部,失效,页面
From: https://www.cnblogs.com/lpkshuai/p/17526142.html

相关文章

  • Qt InputDialog 置顶后模拟键盘输入失效问题
    开发环境:Qt5.12.2+QtCreator4.8.21、问题背景嵌入式linux-arm触摸屏移植了谷歌拼音输入法后测试使用问题2、问题现象1)主窗口编辑框输入法有效2)QInputDialog弹框输入法失效3、问题原因 初步怀疑是QInputDialog置顶问题导致4、问题解决......
  • 微信小程序uniapp解决真机顶部自定义菜单显示(手机状态栏覆盖)
    1.在data里面加入参数statusBarHeight:uni.getSystemInfoSync().statusBarHeight,//状态栏高度2.对返回按钮处理<!--空出状态栏高度--><view:style="'height:'+statusBarHeight+'px;'"></view><!--返回按钮--><di......
  • a-range-picker 无法选择,选择后无反应,且方法失效
    在开发时发现了一个问题,本地研发是没有任何问题的,当打包到测试环境时,日期选择器选择日期没有一点反应,也不回显数据,也不触发方法。如下图: 我在选中4的时候,弹出层关闭,然后上面选择框为空不回显数据,加了change方法后,也不触发方法,非常奇怪。后来发现,在我项目区分版本......
  • @Transactional失效——同一个类中方法调用导致,解决方案!
    同一个类中方法调用,导致@Transactional失效开发中避免不了会对同一个类里面的方法调用,比如有一个类Test,它的一个方法A,A再调用本类的方法B(不论方法B是用public还是private修饰),但方法A没有声明注解事务,而B方法有。则外部调用方法A之后,方法B的事务是不会起作用的。这也是经常犯错......
  • JupyterLab无法点击按钮、快捷键失效的解决方法
      本文介绍JupyterLab中菜单栏按钮无法点击、快捷键无法执行问题的解决办法。  近期打开JupyterLab后,发现其中菜单栏按钮无法点击,快捷键也均无法执行。如图,红框内的按钮点击均无任何反应。  为解决这一问题,首先尝试关闭VPN、浏览器代理设置等,均不奏效。随后,在搜索时看到St......
  • vscode 文件关闭后 全局搜索失效
    问题: vscode编译器在文件关闭后,全局搜索失效,无法搜索到文件内容,打开文件后,可以搜索到。原因:电脑安装了绿盾加密软件,对项目文件进行了加密,vscode编译器无法检索关闭的文件。解决方案:对项目文件进行解密操作(申请解密)......
  • vxe-table 多选框手动设置选中方法setCheckboxRow(rows,true) 失效问题以及翻页保留选
    现象:rows数组里明明有三个对象,但是只有第一个的复选框选中原因:row-config配置项里需要配置keyField:'id' 翻页保留问题官方有配置项checkbox-config reserve 是否保留勾选状态,对于某些场景可能会用到,比如数据被刷新之后还保留之前选中的状态(需要有row-id)......
  • 同一个ip,不同端口号,session失效
    背景我有两个工程projectA、projectB,projectA放在TomcatA中,projectB放在TomcatB中,TomcatA、TomcatB在一台server上。工程都映射的根路径,不用project名字就可以访问,如下http://ip1:7777/http://ip1:8080/问题先在7777登录,然后再在8080登录,发现会把7777端口的用户踢下来;再在7777登......
  • HTML页面中返回顶部的几种实现方式
    第一种:引用外部jQuery新建HTML页面,将下面代码复制保存,通过浏览器打开,即可看到效果.<!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>doc</title><style>.arrow{border:9pxsolidtransparent;......
  • 自定义博客园---返回顶部
    效果就是在页面最右下角的地方有一个小火箭队图标,如下图: 在博客园的设置中,在页首HTML代码中添加如下:<style>#back-top{position:fixed;bottom:10px;right:5px;z-index:99;}#back-topspan{width:50px;height:64px;dis......