1
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()メソッドに問題はありますか?

この問題の解決策はありますか?

4

1 に答える 1

1

解決策を見つけました。代わりにクラスを使用することになり、これは機能しました。

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");
    }});}
于 2012-12-05T22:03:05.377 に答える