Html 具有固定和绝对位置的IE8问题
我有一个内容丰富的页面。当我打开它时,我有一个垂直滚动条。Html 具有固定和绝对位置的IE8问题,html,css,internet-explorer-8,Html,Css,Internet Explorer 8,我有一个内容丰富的页面。当我打开它时,我有一个垂直滚动条。 我有一个小div,应该贴在右侧,居中(垂直)。 当用户滚动时,它应该处于相同的位置,不要一直移动到中间位置。 这项工作在chrome,ff中进行,但我对ie8有问题。 Chrome:div stick,因为它应该位于浏览器视口的垂直中心。 IE8:div保持在右侧,但它使用了整个内容的垂直中心,我需要只是一个视口。所以,如果ie8中的内容高度=4000px,它将以第2000个像素为中心,所以用户必须滚动才能看到它。 我做错了什么 pos
我有一个小div,应该贴在右侧,居中(垂直)。
当用户滚动时,它应该处于相同的位置,不要一直移动到中间位置。
这项工作在chrome,ff中进行,但我对ie8有问题。
Chrome:div stick,因为它应该位于浏览器视口的垂直中心。
IE8:div保持在右侧,但它使用了整个内容的垂直中心,我需要只是一个视口。所以,如果ie8中的内容高度=4000px,它将以第2000个像素为中心,所以用户必须滚动才能看到它。
我做错了什么
position:fixed;
_position:absolute;
top: 50%;
right: 0;
您可以使用javascript实现这一点。下面是一个使用jQuery的示例,我将尝试:
var calculatedTop = $(window).innerHeight() / 2;
$('#YourDiv').css('top', calculatedTop);
Edit:我对其进行了一些扩展,以便在用户滚动时重新计算顶部位置。希望这有助于解决您的IE8问题
$(document).ready(function(){
var reposition = function() {
var calculatedTop = $(window).innerHeight() / 2;
calculatedTop += $(document).scrollTop();
$('#YourDiv').css('top', calculatedTop);
}
// call reposition immediately on initial load
reposition();
// attach to scroll event
$(window).on('scroll', function(){
reposition();
});
});
你能链接一个例子吗。。。这对我来说很好,试试这个:你的代码对我来说适用于IE8。我只是使用了height()而不是innerHeight()。或者vanilla JS:
var calculatedTop=window.innerHeight/2;var el=document.getElementById(“elem”);el.style.top=calculatedTop+“px”代码>啊哈。。。在ie8中,滚动时它不在中心:(您可以附加到滚动事件,每次重新定位top属性。这应该设置为滚动距离+当前视口高度的一半。您可以提供示例吗?