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>
  • 相关阅读:
    Hibernate学习笔记
    Servlet:从入门到实战学习(3)---Servlet实例【图文】
    Servlet:从入门到实战学习(2)---Servlet生命周期
    Servlet:从入门到实战学习(1)---全·环境配置
    java复习(9)---数据库JDBC
    java复习(8)---I/O
    java复习(7)---集合类、泛型
    java复习(6)---异常处理
    C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏
    C# TTS 文本转语音中断实现方式
  • 原文地址:https://www.cnblogs.com/busicu/p/3822778.html
Copyright © 2011-2022 走看看