防止 TMS WEB 核心应用程序中不可滚动内容的意外刷新行为?

问题描述 投票:0回答:1

我目前正在改进 Delphi TMS WEB Core 应用程序的响应能力。但是,我在移动设备上查看时遇到了问题。尝试在不可滚动元素上滚动会无意中触发页面刷新(类似于在 Windows 上按 F5 或在 Mac 上按 Command-R)。

如何防止这种默认行为?

意外刷新尤其成问题,因为它会重新启动应用程序,使用户无法返回到之前的位置。理想情况下,我希望当没有可滚动内容时忽略此类滑动手势。

此外,我担心显示项目数少于视口高度的列表也可能会导致用户尝试滑动滚动时刷新。我也想避免这种情况。

是否有人遇到过类似的问题,并且可以建议一种解决方案来禁用 TMS WEB Core 应用程序中不可滚动内容的这种刷新刷新行为?

delphi page-refresh pull-to-refresh tms tms-web-core
1个回答
0
投票

我不确定是否有更好的方法,但这对我有用。

我创建了一个函数来防止向下滑动或下拉时刷新页面:

procedure SwipeDownRefresh(Enabled: Boolean);
begin
  if Enabled then
  begin
    TJSHTMLElement(document.body).style.removeProperty('overscroll-behavior-y');
    TJSHTMLElement(document.body.parentElement).style.removeProperty('overscroll-behavior-y');
  end else
  begin
    TJSHTMLElement(document.body).style.setProperty('overscroll-behavior-y','contain');
    TJSHTMLElement(document.body.parentElement).style.setProperty('overscroll-behavior-y','contain');
  end;
end;

要禁用向下滑动刷新,只需运行

SwipeDownRefresh(False)
并启用运行
SwipeDownRefresh(True)

© www.soinside.com 2019 - 2024. All rights reserved.