如何删除没有任何页面跳转的dom元素?

我需要从DOM中删除一个元素,而无需跳转页面。

我尝试使用具有相同高度的幻影元素。当到达某个滚动位置时,我尝试从DOM中删除元素,并将幻像元素设置为显示。但是,这仍然会导致闪烁。

粘性间隔物的高度为1000像素,幻像间隔物的高度为0。当它们完成一类动画处理时,幻像间隔物的高度为1000px,粘性间隔物的高度为0。

jQuery('.phantom-container,.sticky-spacer').addClass('animation-done');

我本来希望我的解决方案能起作用,但仍然看到闪烁。有什么防撞方法吗?

我使用的方法也位于此小提琴中: http://jsfiddle.net/dgk17pq9/13/

shz832003dky 回答:如何删除没有任何页面跳转的dom元素?

不确定您的确切代码,但是我调整了您的小提琴,即使您快速滚动,它也似乎没有跳跃或闪烁。

Here is the updated fiddle.

我已将粘滞div移动到幻影div中。 我在页面加载时设置一次幻影div的高度。 我只在粘性div上工作(添加/删除类),而不是幻影div。幻影div始终保持在那里,因此没有闪烁。

这是小提琴的示例代码:

function sticky_relocate() {
  var window_top = $(window).scrollTop();
  var div_top = $('#content-anchor').offset().top;
  if (window_top > div_top) {
    $('#sticky').addClass('stick');
  } else {
    $('#sticky').removeClass('stick');
  }
}

$(function() {
  $(window).scroll(sticky_relocate);

  // Set the height of $sticky-phantom
  $('#sticky-phantom').height($('#sticky').outerHeight());

  sticky_relocate();
});
,

当您将position:fixed添加到元素时,该元素将从其位置移除,并粘贴在页面顶部。由于元素栏不再位于同一位置,因此其余内容会跳起来。

看一下我发现的演示: http://jsfiddle.net/1e1cg6t5/

为了解决该问题,您需要动态更改用于处理特定部分的填充的css类,如上面链接中的代码所示:

if (scrollPos >= navPos) {
        $navBar.addClass('fixed');
    } else {
        $navBar.removeClass('fixed');
    }

其中:

.nav-wrapper .nav {
    height: 80px;
    background: #333;
    padding: 0 40px;
    line-height: 80px;
    color: #FFF;
}

.nav-wrapper .nav.fixed {
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;
    right: 0;
}

我希望能对您有所帮助:)

本文链接:https://www.f2er.com/3156681.html

大家都在问