zoukankan      html  css  js  c++  java
  • 一个简单的单页面网站

    现在网上好多类似的效果,今天心情好,就私自模仿一个去,代码如下。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>单页面网站</title>
    <style type="text/css">
    *{ margin:0; padding:0;}
    .html,body{ width:100%;}
    .top{ height:50px; background:#f1f1f1; position:fixed; top:0; left:0; width:100%; line-height:50px;}
    .top b{ color:#06C; margin:0 10px; cursor:pointer; font-size:13px; font-weight:normal;}
    .top b.active{ color:#fff; background:#C60; padding:3px; font-weight:bold;}
    .container{ color:#fff; margin-top:50px;}
    .container div{text-align:center; font-size:100px; color:#fff; font-weight:bold; line-height:600px; text-shadow:0 0 3px #333;}
    </style>
    </head>
    <body>
    <div class="top" id="top"></div>
    <div class="container" id="a">
    <div mytitle="网站首页" style="background:#06C;">网站首页</div>
    <div mytitle="公司简介" style="background:#f00;">公司简介</div>
    <div mytitle="公司产品" style="background:#0ff;">公司产品</div>
    <div mytitle="公司荣誉" style="background:#00f;">公司荣誉</div>
    <div mytitle="招聘英才" style="background:#f2f;">招聘英才</div>
    <div mytitle="联系我们" style="background:#01a;">联系我们</div>
    </div>
    </body>
    </html>
    <script type="text/javascript">
    window.onload=window.onreset=function(){
        document.documentElement.scrollTop=0;
        var winHeight=document.documentElement.clientHeight||document.body.clientHeight;
        var arr=[];
        var timer=null;
        var oTop=document.getElementById("top");    
        var a=document.getElementById("a");    
        var aDiv=a.getElementsByTagName("div");
        
        for(var i=0;i<aDiv.length;i++){
            var aA=document.createElement("b");
            aA.innerHTML=aDiv[i].getAttribute("mytitle");
            aDiv[i].style.height=winHeight-oTop.offsetHeight+"px";
            var disY=aDiv[i].offsetTop;
            arr.push(disY);
            oTop.appendChild(aA);
        }
        
        var bb=oTop.getElementsByTagName("b");
        bb[0].className="active";
        
        for(var i=0;i<bb.length;i++){
            (function(n){
                bb[n].onclick=function(){
                clearInterval(timer);
                timer=setInterval(function(){
                    var oTarget=arr[n]-50;                    
                    var oldP=document.documentElement.scrollTop||document.body.scrollTop;
                    
                    if(oldP<oTarget){
                        var speed=Math.ceil((oTarget-oldP)/7);
                    }else{
                        var speed=Math.floor((oTarget-oldP)/7);
                    }
                    
                    if(oldP!=oTarget){
                        document.documentElement.scrollTop=oldP+speed;
                        document.body.scrollTop=oldP+speed;
                        
                    }else{        
                        clearInterval(timer)
                    }
                },30)            
                }
            })(i)
        }
        
    window.onscroll=function(){
        var scTop=document.documentElement.scrollTop||document.body.scrollTop;
        var num=Math.round(scTop/aDiv[0].offsetHeight);
        for(var i=0;i<bb.length;i++){
            bb[i].className="";
        }
        bb[num].className="active";
    }
    }
    </script>
  • 相关阅读:
    struts2标签处理下拉列表
    JS中parseInt使用问题解析
    使用jquery异步无刷新删除
    html中table标签的td标签居中左(右)对齐
    struts2拦截器来防止sql注入
    在S2SH中调用返回参数的存储过程
    使用jquery的getJSON从服务器端获得数据
    【vue】vuecli中 对于public文件夹的处理
    oracle10新建表时大小定问题
    会议记录
  • 原文地址:https://www.cnblogs.com/busicu/p/3822778.html
Copyright © 2011-2022 走看看