jquery在滚动时改变div css并且还改回来

时间:2012-11-19 15:09:16

标签: javascript jquery

我有一个顶级粘性菜单栏。当页面开始滚动超过1px时,我添加了一些CSS更改。它现在很好用,但我需要它在滚动位置为0时改回来。任何帮助都表示赞赏。感谢

这是js:

   $(document).scroll(function(){
if($(this).scrollTop() > 1)
{   
    $('.row-1').css({"box-shadow":"0 1px 3px rgba(0, 0, 0, 0.4)"});
 $('.row-1').css({"opacity":"0.9"});
}
});

2 个答案:

答案 0 :(得分:6)

CSS:

.row-1 { /* some styles for row 1 */ }
.row-1.scrolled { 
   box-shadow: 0 1px 3px rbga(0, 0, 0, 0.4);
   opacity: 0.9;
}

然后只需切换滚动类:

 $(document).scroll(function(){
     $('.row-1').toggleClass('scrolled', $(this).scrollTop() > 1);
 });

答案 1 :(得分:4)

试试这个:

$(document).scroll(function(){
    var row = $('.row-1'), scrollTop = $(this).scrollTop();
    if(scrollTop > 1)
    {   
        row .css({"box-shadow":"0 1px 3px rgba(0, 0, 0, 0.4)"});
        row .css({"opacity":"0.9"});
    }
    else if (scrollTop <= 1)
    {
        row.css({"box-shadow":"none"});
        row.css({"opacity":"1"});
    }
});

但你应该使用css类并只是切换它。就像David Hedlund的回应一样。