c# - 如何在 Blazor 服务器端处理窗口或主体滚动?

标签 c# blazor blazor-server-side asp.net-core-3.1 .net-core-3.1

我需要在我的 Blazor 服务器端应用程序中捕获 windowbodyonscroll 事件。现在,我使用脚本文件实现了这一点,我在其中捕获事件并在其中执行我的逻辑。

对于窗口:

window.onscroll = function() {myFunction()};

function myFunction() {
  //  ... my logics here
}

如何捕获body标签的onscroll事件?在 Blazor 服务器端 body 位于 _Host.cshtml 文件中,我无法在其中使用 @onscroll

对于正文:

<body onscroll="myFunction()">

上面的方法可行,但我在使用 blazor 时对这个实现不满意。

请协助说明如何仅使用 C# 实现此功能。

最佳答案

Index.html 是所有 Blazor 应用程序的入口点。这是一个标准的 HTML 文档。这将呈现为具有滚动事件的 document您必须使用 JS Interop 调用 JS 代码来滚动或通知您的滚动事件代码。

这是一个Nuget package可以为您处理。使用 demo app 查看实际效果.

注意:这是使用 .NET 5,因此不适用于面向 .NET Core 3.1 的 Blazor 应用。

关于c# - 如何在 Blazor 服务器端处理窗口或主体滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59541399/

相关文章:

c# - 在一行 LINQ 语句中使用增量键列表到字典

c# - Roslyn 语义模型及其解决方案

blazor - 如何在 Blazor Server .Net 6 中默认要求所有人进行身份验证(使用自动登录页面重定向)

c# - ASP.NET Core 应用程序不从输出目录中读取 appsettings.json,而是从项目一中读取

jquery - 在 Blazor 上调用简单的 jQuery click() 函数不起作用

c# - 如何在 Blazor Server 中实现自定义授权

c# - 组合框下拉列表显示在错误的位置

c# - 如何填充类中的列表

blazor - Blazor 如何管理用户 session ?

blazor - 服务器端 Blazor 的 WYSIWYG HTML 编辑器