如何动态改变DIV样式

在一些网站看到导航栏是透明的,当滚动条往下的时候 导航栏就变成了有背景颜色了。(如这个页面的效果:http://demos.creative-tim.com...),思路应该是jquery监听滚动条然后改变class。
但请问具体怎么做的呢?刚学习不太明白,希望有人能指点一下,最好是有例程参考!谢谢!

阅读 4.7k
2 个回答
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="jquery.js"></script>
    </head>
    <body>
           <div style="width:100%;height:100px;position:fixed;background: red"></div>
           <div style="width:100%;height:2000px;background:blue;";></div>      
    </div>

    </body>
<script type="text/javascript">
    $(document).scroll(function(){
        if($(document).scrollTop() > 300)
            $('div:first').css('background','white');
        else
            $('div:first').css('background','red');
    })
</script>
</html>
  1. 绑定一个onScroll事件。

  2. Scroll过程中计算scrollTop的值。

  3. 当scrollTop到达限定值时改变导航栏样式即可。

  4. 需要优化的是使用Throttle函数来做,限制scroll过程回掉函数的执行次数,提高性能。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题