Javascript 防止DOM元素折叠时页面跳转

Javascript 防止DOM元素折叠时页面跳转,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,假设我在一个网站页面上,有一个表单和一个电台选择,如下所示 当网站用户选择其中一个单选按钮时,将触发JS函数以折叠单选按钮模块。同时,很多计算都在屏幕后面运行 问题是,当网络速度较慢时,尤其是在移动设备上,选择单选按钮后,可能需要5秒甚至更长时间才能折叠无线电模块 图像:我的用户单击一个单选按钮,模块正在后台运行计算,用户继续到表单部分,现在用户只在手机上看到表单部分,此时,我的模块崩溃。用户将看到表单内容跳起,不再出现在他的视图中 我想要实现的是,用户对页面的视图保持不变,即使上面的模块崩溃

假设我在一个网站页面上,有一个表单和一个电台选择,如下所示

当网站用户选择其中一个单选按钮时,将触发JS函数以折叠单选按钮模块。同时,很多计算都在屏幕后面运行

问题是,当网络速度较慢时,尤其是在移动设备上,选择单选按钮后,可能需要5秒甚至更长时间才能折叠无线电模块

图像:我的用户单击一个单选按钮,模块正在后台运行计算,用户继续到表单部分,现在用户只在手机上看到表单部分,此时,我的模块崩溃。用户将看到表单内容跳起,不再出现在他的视图中

我想要实现的是,用户对页面的视图保持不变,即使上面的模块崩溃,用户也应该像上面没有发生任何事情一样保持原样

怎么做

我的想法是:

  • 当模块即将崩溃时,触发一个JS函数

  • JS函数应该能够标记当前用户在页面上的视点位置

  • JS函数应该使视点保持在相同的位置,不管上面的内容是收缩还是扩展

  • JS功能应该可以在所有支持浏览器的移动设备上使用

  • JS函数不应破坏可访问性


  • 提前感谢。

    您可以使用
    元素.getBoundingClientRect()
    方法获取特定元素在屏幕上的位置,然后使用
    滚动方法将屏幕移动到该元素。

    您可以使用
    元素.getBoundingClientRect()
    方法获取特定元素在屏幕上的位置,然后使用
    滚动
    方法将屏幕移动到该元素。

    我认为您的计划是错误的。用户不在乎选择何时成功发送到服务器;仅当网页成功接收到所选内容时。也就是说,当用户选择一个选项时,模块应该立即崩溃


    您的网站可以在模块折叠时,甚至在模块折叠完成后,将数据发送到服务器;用户不会在意的。

    我想你的计划错了。用户不在乎选择何时成功发送到服务器;仅当网页成功接收到所选内容时。也就是说,当用户选择一个选项时,模块应该立即崩溃

    您的网站可以在模块折叠时,甚至在模块折叠完成后,将数据发送到服务器;用户不会在意