具有固定和绝对位置的IE8问题

时间:2014-01-21 12:46:27

标签: html css internet-explorer-8

我有一个内容很多的页面。当我打开它时,我有一个垂直滚动条 我有一个小的div应该坚持在右侧并居中(垂直) 当用户滚动时,它应该处于相同的位置,永远不要只是在中心位置 这个工作在chrome,ff,但我有ie8的问题 Chrome :div,因为它应该是浏览器视口中的垂直中心 IE8 :div向右移动,但它使用整个内容的垂直中心,我需要只是一个视口。因此,如果ie8中的内容为height = 4000px,则将其居中于第2000个像素,因此用户必须滚动才能看到它 我在这里做错了什么?

position:fixed;
_position:absolute; 
top: 50%; 
right: 0;

1 个答案:

答案 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();
    });
});