Ich benutze YS für ein Menü mit fester Position, funktioniert gut in Firefox, aber nicht in IE.

$(function(){                     // this is the shorthand for document.ready
  $(document).scroll(function(){    // this is the scroll event for the document

      scrolltop = $(document).scrollTop();  // by this we get the value of the scrolltop ie how much scroll has been don by user
      if(parseInt(scrolltop) >= 80)         // check if the scroll value is equal to the top of navigation
      { 
          $("#navbar").css({"position":"fixed","top":"0"});       // is yes then make the position fixed to top 0
      }
      else
      {
          $("#navbar").css({"position":"absolute","top":"80px"}); // if no then make the position to absolute and set it to 80
      }
  }
}

Irgendeine Lösung, die dieses Problem behebt, z.

2
Mirko Mukaetov 9 Okt. 2012 im 17:01

3 Antworten

Beste Antwort

Das Problem scheint mir zu sein, dass der IE das Ereignis .scroll nicht auslöst. Zumindest nicht in jsfiddle. Wenn Sie das Ereignis explizit auslösen, scheint dies die Probleme zu beheben. Diese Geige wurde in IE8 getestet und funktioniert. Der Code:

$(function()
{
    $(document).scroll(function()
    {//add var here, avoid evil globals:
        var scrolltop = $(document).scrollTop();  
        if(parseInt(scrolltop) >= 80)         
        { 
            $("#navbar").css({"position":"fixed","top":"0"});       
        }
        else
        {
            $("#navbar").css({"position":"absolute","top":"80px"});
        }
    });//close properly
    $(document).scroll();//explicit call
});//close this, too
1
Elias Van Ootegem 9 Okt. 2012 im 13:40

Für die Positionsfixierung muss Ihr übergeordnetes Element diesen Stil haben

position:relative;

Freundliche Grüße

0
Saeed 9 Okt. 2012 im 13:08

Sie vermissen ')' in Ihrem Code funktionierender jsfiddle (getestet in IE7 und IE9)

$(function(){                     // this is the shorthand for document.ready
  $(window).scroll(function(){    // this is the scroll event for the document

      scrolltop = $(window).scrollTop();  // by this we get the value of the scrolltop ie how much scroll has been don by user
      if(parseInt(scrolltop) >= 80)         // check if the scroll value is equal to the top of navigation
      { 
          $("#navbar").css({"position":"fixed","top":"0"});       // is yes then make the position fixed to top 0
      }
      else
      {
          $("#navbar").css({"position":"absolute","top":"80px"}); // if no then make the position to absolute and set it to 80
      }
  }); //here
});//here
1
Anoop 9 Okt. 2012 im 13:33