在IE7和IE8中使用jQuery将位置从绝对设置为固定


var uf = $('.utilsFloat');
var topValue = $('.article .header').offset().top;
uf.css({
    top : topValue,
    marginLeft : -137,
    position: 'absolute'
});
$(document).scroll(function() {
    var fixedShareTools = $(document).scrollTop() >= topValue;
    if (fixedShareTools) {
        uf.css(
            {
                top : 10 + "px",
                "position" : "fixed"
            }
        );
    }
    else {
        uf.css(
            {
                "position" : "absolute",
                top : topValue + "px"
            }
        )
    }});

上面的代码试图在滚动页面标题时将项目的位置属性设置为"固定"。除了IE8和7之外,它在所有方面都运行良好。IE7/8 中的 jQuery .css() 方法是否存在问题?

这个问题有解决方案吗?

我找到了一个解决方案。我最终改用了类,这奏效了。

if ($('body').hasClass('content-article')) {
//Pulling the top position value of the article header so the share tools align with it always
var uf = $('.utilsFloat');
var topValue = $('.article .header').offset().top;
uf.css({top : topValue });
$(window).scroll(function() {
    var fixedShareTools = $(window).scrollTop() >= topValue;
    if (fixedShareTools) {
        uf.removeClass('absolute');
        uf.addClass('fixed');
    }
    else {
        uf.removeClass('fixed');
        uf.addClass('absolute');
        uf.css(top, topValue + "px");
    }});}

最新更新