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()方法有問題嗎?在IE7和IE8中使用jQuery將位置從絕對位置設置爲固定位置

有沒有解決這個問題的方法?

+1

IE一般總是有固定/絕對的問題。很長一段時間,固定規格甚至沒有支持。我不明白爲什麼切換會有問題,即IE 8,但7或以下,我可能會看到一個問題。在另一方面,也許邏輯是有點顛倒。絕對和固定兩個工作的屏幕視圖端口的初始位置(或者至少我認爲是這種情況)當然,如果你把它放在一個相對位置元素是一個不同的情況下,但總是沒有那個0位置開始於在窗口頂部,而不一定是內容。 – chris

+0

試試這個: http://stackoverflow.com/questions/1628265/how-to-get-positionfixed-css-to-work-in-ie-7-with-transitional-doctype – ajp

+0

我幾乎查看了所有已經嘗試了上述解決方案。將位置設置爲固定,並將頂部/左側設置爲0將導致元素從頁面中消失。 – Jbwilliams1

回答

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"); 
    }});}