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

Wil*_*ing 1 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"});
}
});
Run Code Online (Sandbox Code Playgroud)

Mag*_*gus 6

尝试这个 :

$(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"});
    }
});
Run Code Online (Sandbox Code Playgroud)

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


Dav*_*und 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;
}
Run Code Online (Sandbox Code Playgroud)

然后只需切换滚动类:

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