Blazor虚拟化组件和拖动滚动条时出现的滚动问题。
创始人
2024-12-22 03:00:11
0

我们可以使用 Blazor 的 Virtualize 组件,来优化长列表或数据集的性能。然而,当我们在拖动滚动条时,可能会出现滚动出现异常的问题。这可能是因为 Blazor 的 Virtualize 组件在滚动时会发生滚动事件冲突。

为了解决这个问题,我们可以修改 Virtualize 组件的代码,添加一个判断条件,以便在拖动滚动条时不会触发 Virtualize 组件的滚动事件。我们可以通过以下代码实现:


    
        ... 
    


@code{
    private bool isScrolling = false;
    private string scrollSensitiveAreaClass = "scroll-sensitive-area-" + Guid.NewGuid().ToString();
    private List items = new List { ... };

    private async Task HandleScroll(ScrollEventArgs e)
    {
        if (!isScrolling)
        {
            var rootRect = await JSRuntime.InvokeAsync("getBoundingClientRect", scrollSensitiveAreaClass);
            if (e.Direction == ScrollDirection.Vertical && (e.ScrollTop < rootRect.Top || e.ScrollTop + rootRect.Height > rootRect.Bottom))
            {
                isScrolling = true;
                await JSRuntime.InvokeVoidAsync("requestAnimationFrame", async () =>
                {
                    isScrolling = false;
                    await InvokeAsync(StateHasChanged);
                });
            }
        }
    }
}

这段代码中,我们添加了一个名为 scrollSensitiveAreaClass 的属性,用于设置滚动敏感区域的类名。然后,在 Virtualize 组件上为 scrollSensitiveAreaClass 类名创建了一个 DOM 元素,作为滚动敏感区域。最后,在滚动事件处理程序中添加了一个判断条件,以便在拖动

相关内容

热门资讯

黑科技最新!(微扑克)透视辅助... 黑科技最新!(微扑克)透视辅助机制,(微扑克wpk)原本是真的有挂,教你攻略(有挂教程);1.微扑克...
黑科技辅助(wepokE)黑科... 黑科技辅助(wepokE)黑科技透明挂辅助助手(透视)AI教程(真是有挂)1、该软件可以轻松地帮助玩...
黑科技美元局!(WPk)透视辅... 《黑科技美元局!(WPk)透视辅助器,(WpK)切实是真的有挂,德州教程(有挂技巧)》 德州软件透明...
黑科技有挂(We辅poker助... 黑科技有挂(We辅poker助)黑科技透明挂辅助app(透视)科技教程(好像是有挂);运We辅pok...
黑科技好友房!(Aapoker... 这是一款非常优秀的AAPOKeR ia辅助检测软件,能够让你了解到AAPOKeR中牌率当中全部隐藏参...
黑科技美元局(wPk)外挂透视... 黑科技美元局(wPk)外挂透视辅助软件(透视)技巧教程(切实是真的有挂)小薇(透视辅助)致您一封信;...
黑科技软件!(德州)外挂辅助软... 黑科技软件!(德州)外挂辅助软件,(德州)本来是有挂,技巧教程(有挂技巧);亲真的是有正版授权,小编...
黑科技数据(德州)外挂辅助挂(... 黑科技数据(德州)外挂辅助挂(透视)2025新版总结(原来是真的有挂)1、很好的工具软件,可以解锁游...
黑科技智能ai!(wepOKE... 黑科技智能ai!(wepOKE)软件透明挂,(WePoke)素来真的是有挂,透明挂教程(有挂辅助);...
黑科技真的(fishpoker... 黑科技真的(fishpoker俱乐部)外挂辅助软件(透视)2025新版教程(真是是真的有挂)1、首先...