2013-02-24 62 views
0

我有一个函数在用户滚动查看scrollTop()时被调用,并且在发生某个滚动后,它将菜单的z-index从-1更改为1.但是,这仅发生在滚动,所以如果用户刷新站点,菜单几乎不可用,直到下一次滚动发生。加载后更改z索引

有没有办法让我调用它,并检查屏幕滚动量(刷新后不是用户滚动)是否符合条件会改变z-index?

我的JS:

function getPosition(){ 
     var y = $(window).scrollTop(); 
     var status = (y > 880) ? true : false; 
     //console.log(status); 
     if(status) 
      $('#actual-menu').css('z-index', 1); 
     else 
      $('#actual-menu').css('z-index', -1); 
    } 

回答

0

的z-index属性对非定位的元素没有效果,元素必须是相对定位,绝对定位,或fixed.Replace这个你行:

首先尝试添加此,

$("#actual-menu").css('position', 'relative'); 

$('#actual-menu').css('z-index', 1); 
+0

我取代了线,感谢和元素的定位,但仍然没有用户重新加载后我 – Tsundoku 2013-02-24 07:09:23

0

只要运行getPositionready事件的内部。

Functioning Example

变种限制= 50;

$(function() { 

    function getPosition() { 
      var y = $(window).scrollTop(); 
      var status = (y > limit) ? true : false; 

      if (status) { 
        $('#actual-menu').css('zIndex', 1); 
      } else { 
        $('#actual-menu').css('zIndex', -1); 
      } 
    } 

    $(document).on('scroll', getPosition); 

    getPosition(); 
}); 
+0

试过,但由于一直没有用户滚动它标志着scrollTop的()为0 – Tsundoku 2013-02-24 07:08:42

+0

什么浏览器?在Firefox中,它会刷新一个数字。 – 2013-02-24 07:27:50

+0

Chrome,可能与我的css有关我猜 – Tsundoku 2013-02-24 07:40:39