javascript - DOM元素折叠时防止页面跳转
问题描述
当网站用户选择其中一个单选按钮时,将触发一个 JS 函数来折叠单选按钮模块。与此同时,很多计算都在屏幕后面运行。
问题是,当网速较慢时,尤其是在移动设备上,选择单选按钮后,可能需要 5 秒甚至更长时间才能收起单选模块。
图片如下:我的用户单击一个单选按钮,模块正在后台运行计算,用户继续到表单部分,现在用户只能在手机上看到表单部分,此时,我的模块崩溃了。用户会看到表单内容跳了起来,不再是他的观点。
我想要实现的是,用户对页面的视图保持不变,即使上面的模块崩溃,用户仍然应该留在他的位置,就像上面什么都没有发生一样。
怎么做?
我的想法是:
当模块即将崩溃时,触发一个 JS 函数。
JS 函数应该能够在页面上标记当前用户的视点位置。
然后,JS 函数应该使视点保持在同一位置,尽管上面的内容会缩小或扩大。
JS 功能应该可以在所有浏览器支持、移动设备上使用。
JS 函数不应破坏可访问性。
提前致谢。
解决方案
您可以使用element.getBoundingClientRect()
方法获取特定元素在屏幕上的位置,然后使用scrollBy
方法将屏幕移动到该元素。
推荐阅读
- python - Jupyter 小部件与 JupyterLab 扩展?
- c# - 检查文件是否存在:存储在 db 中的 URL VS 检查文件系统
- java - 在 JNI 中使用 malloc 会导致崩溃
- reactjs - 在组件内部使用 redux 状态的最佳实践是什么?
- c# - 如何使用 C# 让 Google Chrome 始终使用来自 Windows 服务的给定 URL 打开
- python - 如何使用正则表达式在 Python 中获取段落中的最后一个单词
- javascript - 为不同的浏览器应用 css
- angular - 如何访问单个变量中的子组件属性和方法?
- google-cloud-platform - 使用访问令牌签署谷歌云存储 blob
- pandas - 将 pandas 数据框写入 csv 文件并在 for 循环中重命名