我一直在开发一个站点,它依赖于jquery ScrollTo插件在页面之间水平移动。每个“页面”都是100%x 100%的部分,内部有一个包装div,然后是绝对定位的元素。
除了IE之外,这在所有浏览器中都完美地运行了100%。在IE的所有版本(甚至10个)中,内容元素正在消失,只有在以某种方式悬停或选择时才会出现。
这真的很奇怪而且不一致,有些元素有时出现,有时是部分出现,但通常根本不出现。调整窗口大小只会显示当前在视口中的元素,但不会显示在其外部(如果向外滚动,则会再次出现故障)。删除ScrollTo并使用默认锚定行为很好,但我无能为力,似乎有所作为。
谷歌在这个问题上的搜索完全没有发现。
内容的基本结构是有效的:
<section id="content">
<div class="mask">
<section id="pagename">
<div class="wrap">
<div></div>
<div></div>
</div>
</section>
<section>
<div class="wrap">
<div></div>
<div></div>
</div>
</section>
</div>
</section>
CSS:
#content {width: 100%; height: 100%; overflow: hidden; }
#content .mask {width: 800%; height: 100%;}
section {position: relative; display: block; width: 12.5%; height: 100%; float: left;}
.wrap {position: absolute; display: block; top: 50%; left: 50%; height: 860px; margin-top: -430px; width: 860px; margin-left: -430px; overflow: visible;}
然后.wrap中的div绝对位于页面周围。
一切都在正确的位置,内容呈现正确(一旦可见)。它似乎只是问题开始的.wrap的内容(在.wrap上设置测试背景表明它不会出现故障,只是它的内容)。
如果有人能够解释造成这个问题的原因,那将会使它表现得非常受欢迎。
干杯, 森
答案 0 :(得分:1)
好的,我已经解决了这个问题。
在页面的其他地方(不在#content部分内),我有一个单独的div,它是固定位置。无论出于何种原因,保持这个固定是导致IE问题与其他元素滚动查看。将div更改为绝对定位(在这种情况下不是问题,因为所有滚动都是在#content部分内完成的),这一切都有所不同。
我应该补充一点,jQuery ScrollTo与此无关(删除所有脚本并在#content上使用overflow auto来获取滚动条,表明问题甚至没有发生)。这纯粹是一个渲染问题,在固定定位元素的顶部滚动元素。