我有一个内容很多的页面。当我打开它时,我有一个垂直滚动条 我有一个小的div应该坚持在右侧并居中(垂直) 当用户滚动时,它应该处于相同的位置,永远不要只是在中心位置 这个工作在chrome,ff,但我有ie8的问题 Chrome :div,因为它应该是浏览器视口中的垂直中心 IE8 :div向右移动,但它使用整个内容的垂直中心,我需要只是一个视口。因此,如果ie8中的内容为height = 4000px,则将其居中于第2000个像素,因此用户必须滚动才能看到它 我在这里做错了什么?
position:fixed;
_position:absolute;
top: 50%;
right: 0;
答案 0 :(得分:1)
你可以用javascript做到这一点。这是一个使用jQuery的例子,我会尝试:
var calculatedTop = $(window).innerHeight() / 2;
$('#YourDiv').css('top', calculatedTop);
编辑:我稍微扩展了一下,以便在用户滚动时重新计算顶部位置。希望这有助于解决您的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();
});
});