2013-01-09 46 views
0

我为jQuery写了一个简单的视差滚动效果的小插件。它可以在所有浏览器中工作,除了< ie8。IE8 Jquery scrollTop总是返回0

$.fn.extend({ 
    //plugin name - parallax (simpel) 
    parallax: function(options) { 

     var defaults = { 
      speed: 3 
     }; 

     var options = $.extend(defaults, options); 
     var o = options; 
     var obj = $(this); 
     var s = $(window).scrollTop()/o.speed; 

     if ($.browser.msie && parseInt($.browser.version, 10) <= 8) { 
      obj.css({"top" : -s + "px"}); 
     }else{ 
      obj.css("-webkit-transform", "translateY(-" + s + "px)"); 
      obj.css("-moz-transform", "translateY(-" + s + "px)"); 
      obj.css("-ms-transform", "translateY(-" + s + "px)"); 
     }         
    } 
}); 

在我的主要jQuery的文件我用这样的代码:

$(window).scroll(function(){ 
    $('.headMenu').parallax({speed: 6}); 
    $('.header_img').parallax(); 
}); 

出于某种原因,“S”始终保持0找不到原因。我认为$(window).scroll在IE8中不起作用。

回答

-2

我在过去使用过scrollTop()运行不好,但不知道为什么。如果它适合您的需求,请尝试使用window.scrollTo(0, 0);始终在所有IE中工作:-)

+1

scrollTo与scrollTop不一样吗?我需要获得某人滚动的位置,并在有人滚动时更新此值。在这种情况下,变量's'。 –

+0

我知道,这就是为什么我说“如果它适合您的需求”:-) – legendofawesomeness