使用鼠标滚轮滚动时,IE 10和11会使固定背景跳转

在Windows 8中使用鼠标滚轮滚动时,固定的背景图像会像疯了一样反弹。 这只会影响IE 10和IE 11.这会影响position:fixed元素。 有没有防止它发生在IE 10和11?

这是一个固定的背景图像的例子:

http://www.catcubed.com/test/bg-img-fixed.html

我知道这是一个答案有点晚,但我有同样的问题,并能够通过将这些属性添加到我的CSS文件来解决它。

 html{ overflow: hidden; height: 100%; } body{ overflow: auto; height: 100%; } 

来自评论:

这个解决scheme停止在窗口上发射滚动事件,所以当你使用任何依赖于这种事件触发的事情时要小心。 codepen.io/anon/pen/VawZEV?editors=1111(overflow:hidden ,滚动事件不起作用) codepen.io/anon/pen/PNoYXY?editors=1111 (overflow:auto,scroll events fire) – Dan Abrey

所以这可能会在你的项目中造成一些问题。 但我没有看到另一种方法来解决IE中的这个错误。

这看起来像一个z-index错误,请尝试添加z-index:1。

看着这个,我发现最好的debugging方法是:

在页面的顶部创build一个简单的元素,例如

  <style>#test {position: fixed; background: red; top: 0; left: 0; width: 4em}</style> <div id="test">Test</div> 

在所有上述情况下,这工作正常,滚动是光滑的。 所以这certificate它可以做到! 现在慢慢地添加你的属性,直到你能够获得位置固定的元素在你的网站上下文中工作。

然后,我发现添加一个z-index到固定项目解决了这个问题。 (如z-index:1)

我也发现,一旦一个位置被设置在一个子元素上,从这个点开始,这个错误就显示出来了。 所以你需要确保没有一个子元素有一个位置设置,或者如果他们这样做,你明确地设置每个孩子的位置。

例如

 <!-- Works --> <div style="position: fixed;"> <div>Nice</div> <div>Wicked</div> <div>Cool</div> </div> <!-- Element with position: relative, experiences the bug --> <div style="position: fixed;"> <div style="position: relative;">sad</div> <div>sad</div> <div style="position: fixed;">happy</div> </div> 

这是可以修复的,但需要一些调整!

这是一个解决方法(在Windows 8.1上testing):

将“background”CSS属性移动到BODY元素 。 目前它在id =“filler”的DIV元素上。 这是由此产生的CSS:

  body { font-family: Helvetica, Arial, sans-serif; background: #fff url(blue-kitty.jpg) no-repeat fixed center 100px; } #filler { text-align: center; } .big-margin { margin-top: 500px; } 

尝试closures平滑滚动选项。

Internet选项 – 广告标签 – 使用平滑滚动

这就像渲染错误…. MS IE团队正在调查….

在我的情况下,解决scheme是简单地从具有position:fixed的元素中移除z-index属性,然后IE停止了奇怪的闪烁。

(禁用IE浏览器选项的平滑滚动,同时拥有z-index属性,但这不是一个解决scheme,因为用户很可能默认使用它)。

只是简单地将身体容器定义为相对。

 <style> body { position: relative; } </style>