zoukankan      html  css  js  c++  java
  • 自动固定顶部的悬浮菜单栏代码

    1.jquery方法

    $(function () {
    var elm = $('#pordAttr');
    var startPos = $(elm).offset().top;
    $.event.add(window, "scroll", function () {
    var p = $(window).scrollTop();
    $(elm).css('position', ((p) > startPos) ? 'fixed' : 'static');
    $(elm).css('top', ((p) > startPos) ? '0px' : "");
    });
    });

    offset()

    获取匹配元素在当前视口的相对偏移

    返回的对象包含两个整型属性:top 和 left。此方法只对可见元素有效。

    http://www.ostools.net/apidocs/apidoc?api=jquery

    2.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
     <title>顶部固定菜单_www.jbxue.com</title>
     <style type="text/css">
     *{ margin:0; padding:0;}
     .nav-wrapper-fixed{ position:fixed; top:0; width:100%;}
     .nav-wrapper-fixed .nav{width:960px; margin:0 auto;}
     .nav-wrapper-fixed .nav li{ float:left; width:100px; margin-right:5px; background:#CCC; text-align:center; height:24px; line-height:24px; list-style:none;}
     .nav-wrapper{ margin-top:100px; width:100%;}
     .nav-wrapper .nav{width:960px; margin:0 auto;}
     .nav-wrapper .nav li{ float:left; width:100px; margin-right:5px; background:#CCC; text-align:center; height:24px; line-height:24px; list-style:none;}
     </style>
     <script type="text/javascript">
         window.onload = function () {
             var nav = document.getElementById('nav');
             var navFixed = document.getElementById('navFixed');
             window.onscroll = function () {
                 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                 document.title = scrollTop
                 if (scrollTop > nav.offsetTop) {
                     navFixed.style.display = 'block';
                 } else if (scrollTop < nav.offsetTop) {
                     navFixed.style.display = 'none';
                 }
             }
         };
     </script>
     </head>
     <body style="height:2000px;">
     <div class="nav-wrapper">
         <div class="nav" id="nav">
             <ul>
                 <li>菜单一</li>
                 <li>菜单二</li>
                 <li>菜单三</li>
                 <li>菜单四</li>
                 <li>菜单五</li>
             </ul>
         </div>
     </div>
     <div class="nav-wrapper-fixed" id="navFixed" style="display:none;">
         <div class="nav" id="nav">
             <ul>
                 <li>菜单一</li>
                 <li>菜单二</li>
                 <li>菜单三</li>
                 <li>菜单四</li>
                 <li>菜单五</li>
             </ul>
         </div>
     </div>
     </body>
     </html>

    3

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>自动固定顶部的悬浮菜单栏代码_www.jbxue.com</title>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    <style type="text/css">
    *{margin:0;padding:0;}
    ul,li{list-style:none;}
    #content{width:600px;margin:0 auto;border:1px solid #f00;}
    ul li.item{width:400px;text-align:center;margin:20px 100px;background:#00f;color:#fff;font-size:14px;font-weight:bold;height:100px;line-height:100px;}
    #float_banner{position:absolute;top:0;left:50%;width:900px;margin-left:-450px;height:30px;line-height:30px;text-align:center;background:#000;color:#fff;font-size:14px;font-weight:bold;z-index:2;}
    </style>
    </head>
    <body>
    <div id="float_banner">这里是顶部的横幅,随着页面滚动而浮动</div>    
    <ul id="content">
        <li class="item">第一块内容</li>
        <li class="item">第二块内容</li>
        <li class="item">第三块内容</li>
        <li class="item">第四块内容</li>
        <li class="item">第五块内容</li>
        <li class="item">第六块内容</li>
        <li class="item">第七块内容</li>
        <li class="item">第八块内容</li>
        <li class="item">第九块内容</li>
        <li class="item">第十块内容</li>
    </ul>
    <script language="javascript">
    var speed = 100;
    var scrollTop = null;
    var hold = 0;
    var float_banner;
    var pos = null;
    var timer = null;
    var moveHeight = null;
    float_banner = document.getElementById("float_banner");
    window.onscroll=scroll_ad;
    function scroll_ad(){
        scrollTop = document.documentElement.scrollTop+document.body.scrollTop;
        pos = scrollTop - float_banner.offsetTop;
        pos = pos/10
        moveHeight = pos>0?Math.ceil(pos):Math.floor(pos);
        if(moveHeight!=0){
            float_banner.style.top = float_banner.offsetTop+moveHeight+"px";
            setTimeout(scroll_ad,speed);
        }
    //alert(scrollTop);
    }
    </script>
    </body>
    </html>

    另一个:

    <script type="text/javascript">
    var rollSet = $('#widget');
        var offset = rollSet.offset();
        var fwidth = $("#footer").height();
        $(window).scroll(function() {
            var scrollTop = $(window).scrollTop();
            var scrollBtm = $(document).height() - $(window).scrollTop() - $("#widget").height();
            if (offset.top < scrollTop) {
                if (scrollBtm > fwidth) {
                    rollSet.removeClass('absolute').addClass('fixed')
                } else {
                    rollSet.removeClass('fixed').addClass('absolute')
                }
            } else {
                rollSet.removeClass('fixed')
            }
        })
    </script>

    方法说明:
    由页面总高度减去已滚动的高度再减去ID为widget的层的高度即等于该层底部距离底部的高度;
    当距离底部的高度小于或等于特定位置距离底部的高度时,去掉样式fixed,然后给该层添加绝对定位!
    CSS中要给父父层添加position:relative;

  • 相关阅读:
    HDU-2602-Bone Collector
    HDU-1171-Big Event in HDU
    javascript概要
    核桃的数量
    P3372 【模板】线段树 1
    P3373 【模板】线段树 2
    拿糖果
    第二点五个不高兴的小明
    树的直径
    1240. 完全二叉树的权值
  • 原文地址:https://www.cnblogs.com/youxin/p/3034654.html
Copyright © 2011-2022 走看看