Javascript 使用jquery滚动查看带有抖动元素的ie11问题

Javascript 使用jquery滚动查看带有抖动元素的ie11问题,javascript,jquery,internet-explorer-11,smooth-scrolling,Javascript,Jquery,Internet Explorer 11,Smooth Scrolling,我刚刚在ie11上遇到了一个奇怪的问题。我试图创建一个固定的元素,它将随着窗口滚动而滚动 $(window).scroll(function() { var scrollY=$(this).scrollTop(); $('.myelem').css('transform', 'translateY(' + scrollY + 'px)'); }); 我还创造了一把小提琴: (这是为了复制问题,我知道这个特殊情况可以用固定元素解决) 除了ie11之外,该代码在每个浏览器上都能完

我刚刚在ie11上遇到了一个奇怪的问题。我试图创建一个固定的元素,它将随着窗口滚动而滚动

$(window).scroll(function() {
    var scrollY=$(this).scrollTop();
    $('.myelem').css('transform', 'translateY(' + scrollY + 'px)');
});
我还创造了一把小提琴:

(这是为了复制问题,我知道这个特殊情况可以用固定元素解决)

除了ie11之外,该代码在每个浏览器上都能完美地工作,没有任何性能问题。使用滚动条时,“myelem”元素只会滚动一小部分,而使用鼠标滚轮时,这一点会变得更加明显。但是,当使用滚动条按钮时,您可以真正看到问题。为了让js跟踪滚动,滚动的渲染似乎必须完成

我看到ie11和平滑滚动有问题,但这里不是这样。有什么解决办法吗?我错过什么了吗

编辑:虽然我有一个似乎可以解决这个问题的答案,但实际上我正在寻找的是一个有溢出元素的解决方案:隐藏应用于它们,卷轴是从溢出元素而不是主体卷轴中获取的;在这里可以找到类似的场景:


如果示例中启用了“fixed column”(固定列),则单击滚动条可显示移动中的抖动。

似乎添加了
高度:100%
溢出:自动
html,body
元素删除IE 11问题:

[编辑]:添加
边距:0删除双滚动条。

对于边缘使用:

/*Edge - works to 41.16299.402.0*/
@supports (-ms-ime-align:auto) 
{
    html{
        overflow: hidden;
        height: 100%;       
    }
    body{
        overflow: auto;
        height: 100%;
        position: relative;
    }
}

/*Ie 10/11*/
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) 
{
    html{
        overflow: hidden;
        height: 100%;    
    }
    body{
        overflow: auto;
        height: 100%;
        position: relative
    }
}

添加margin:0和padding:0禁用了JSFIDLE额外的滚动条,似乎解决了这个问题,但在我的特定代码中没有。让我花点时间来讨论这个问题,然后再告诉你,如果不是在滚动体上讨论,而是在元素滚动体上讨论,我将如何复制类似的代码?这看起来像是一个非常特殊的黑客?我的意思是,有什么解释解释为什么这样做吗?很好,这就成功了。如果我没弄错的话,复制这个函数,比如说一个
div
,作为一个容器,其中包含一个子元素,在其中滚动时应该跟随它?我想说的是,同样的规则依然存在,但我认为
height
属性是这里的关键。很难说一个人怎么能把它复制到一个有很多元素和不同css属性的页面上。我用编辑更新了原始描述,如果你有时间的话,请查看一下