页面中有一个导航栏,导航栏距浏览器上边缘有一定的距离,正常情况下,向下拉浏览器的滚动条,导航栏会向上走,当拉到导航栏超过浏览器上边缘的以后,导航栏就不可见了,我想实现的是,当未超过浏览器上边缘拉滚动条,导航栏正常向上走,但是当滚动条的div的上边缘距离浏览器上边缘为0时,保证导航条始终在最上端,保持可见。当导航条拉回去后,导航栏又回复到原来的位置,求代码

解决方案 »

  1.   


    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    <style>
    body {
    height:2000px;
    }
    div {
    position:absolute; right:40px; top:40px;
    width:90%; height:30px;
    background:#ddd;
    }
    </style>
    </head>
    <body>
    <div id="test">111111111</div>
    <script>
    function toolbar(el){
    el = typeof el == 'string' ? document.getElementById(el) : el;
    var elTop = el.offsetTop;
    var sTop = 0;
    window.onscroll = function(){
    sTop = document.body.scrollTop || document.documentElement.scrollTop;
    if( sTop > elTop ){
    el.style.top = sTop + 'px';
    }else{
    el.style.top = elTop + 'px';
    }
    }
    }
    toolbar('test');
    </script>
    </body>
    </html>这个意思?
      

  2.   

    <!DOCTYPE HTML>
    <html>
        <head>
            <meta charset="gb2312" />
            <title></title>
            <style>
                body {
                    height:2000px;
                }
                div {
                    position:absolute; right:40px; top:40px;
                    width:90%; height:30px;
                    background:#ddd;
                }
            </style>
        </head>
        <body>
            <div id="test">111111111</div>
            <script>
                function toolbar(el){
                    el = typeof el == 'string' ? document.getElementById(el) : el;
                    var elTop = el.offsetTop;
                    var sTop = 0;
                    window.onscroll = function(){
                        sTop = document.body.scrollTop || document.documentElement.scrollTop;
                        if( sTop > elTop ){
                         el.style.position="fixed";
                            el.style.top = 0 + 'px';
                        }else{
                         el.style.position="absolute";
                            el.style.top = elTop + 'px';
                        }
                    }
                }
                toolbar('test');
            </script>
        </body>
    </html>
      

  3.   

    帮忙看一下,我这个滚回去,怎么导航栏不回去,谢谢

     $(document).ready(function () {
            //导航距离屏幕顶部距离
            var _defautlTop = $(".screening").offset().top - $(window).scrollTop();
            //导航距离屏幕左侧距离
            var _defautlLeft = $(".screening").offset().left - $(window).scrollLeft();
            var _position = $(".screening").css('position');
            var _top = $(".screening").css(' top');
            var _left = $(".screening").css('left');
            var _zIndex = $(".screening").css('z - index');
            //鼠标滚动事件
            $(window).scroll(function () {
                if ($(this).scrollTop() > _defautlLeft) {                //IE6不认识position:fixed,单独用position:absolute模拟
                    if ($.browser.msie && $.browser.version == "6.0") {
                        $(".screening").css({
                            'postion': 'absolute',
                            'top': eval(document.documentElement.scrollTop),
                            'left': '_defautlLeft',
                            'z-index': 999
                        });
                        //防止出现抖动
                        $("html, body").css({ 'background - image': 'url(about: blank)',
                            'background - attachment': 'fixed'
                        });
                    }
                    else {
                        $(".screening").css({ 'position': 'fixed',
                            'top': 0,
                            'left': '_defautlLeft',
                            'z-index': 999
                        });
                    }
                }
            });
      

  4.   

    帮忙看一下,我这个滚回去,怎么导航栏不回去,谢谢

     $(document).ready(function () {
      //导航距离屏幕顶部距离
      var _defautlTop = $(".screening").offset().top - $(window).scrollTop();
      //导航距离屏幕左侧距离
      var _defautlLeft = $(".screening").offset().left - $(window).scrollLeft();
      var _position = $(".screening").css('position');
      var _top = $(".screening").css(' top');
      var _left = $(".screening").css('left');
      var _zIndex = $(".screening").css('z - index');
      //鼠标滚动事件
      $(window).scroll(function () {
      if ($(this).scrollTop() > _defautlLeft) {  //IE6不认识position:fixed,单独用position:absolute模拟
      if ($.browser.msie && $.browser.version == "6.0") {
      $(".screening").css({
      'postion': 'absolute',
      'top': eval(document.documentElement.scrollTop),
      'left': '_defautlLeft',
      'z-index': 999
      });
      //防止出现抖动
      $("html, body").css({ 'background - image': 'url(about: blank)',
      'background - attachment': 'fixed'
      });
      }
      else {
      $(".screening").css({ 'position': 'fixed',
      'top': 0,
      'left': '_defautlLeft',
      'z-index': 999
      });
      }
      }
      });