javascript - 当中键单击的元素从 DOM 中删除时滚动停止

标签 javascript html css reactjs

我对自己的 React 虚拟化实现很深入,一直困扰我的小问题之一是,如果我中键单击列表中的某个元素并开始滚动,一旦该元素从 DOM 中删除,滚动停止。我的第一个理论是,该元素正在获得关注,并且阻止这种情况可以解决问题,但我所尝试的方法并没有起作用,我什至不确定这就是问题所在。

如何防止这种情况发生?

请参阅此 fiddle 的基本演示:

https://jsfiddle.net/v169xkym/2/

以及处理虚拟化的相关代码:

$('#container').scroll(function(e) {
  $('#container').children().each(function(i) {
     if ($('.item:eq(' + i + ')').length > 0) {
        if ($('.item:eq(' + i + ')').offset().top < 0) {
          $('.item:eq(' + i + ')').remove();
          $('#topPadding').height($('#topPadding').height() + 45);
        }
     }
  });
});

基本上,我使用删除元素并增加填充的标准方法。在我的 React 实现中,处理方式有所不同,但在这里您可以获得基本的功能表示。

最佳答案

您可以通过不让消失的元素注册鼠标事件来解决此问题。

这可以通过 CSS3 来完成:

div.item {
    pointer-events : none;
}

(不完全确定原因,但我的猜测是,一旦元素消失,事件的起源就丢失了,所以浏览器只是停止做他们正在做的事情。)

Jsfiddle here

关于javascript - 当中键单击的元素从 DOM 中删除时滚动停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47541792/

相关文章:

html - 使用 CSS 的预定图标

javascript - console.log 中的神秘 NaN。尝试一个简短的物理实验

html - CSS 菜单 - 居中对齐元素和中间垂直对齐

html - 在 div 中对齐 ul

css - IE11 中的 Div 旋转

html - CSS 未在实时网站上显示

javascript - 如何在画架js中画一个虚线圆圈

javascript - 仅在特定页面中滚动显示 div

javascript - 单击时将 "on-the-fly"数据绑定(bind)到模态

html - 在 Tumblr 中为每个帖子定义样式