zoukankan      html  css  js  c++  java
  • 在文档页面局部出现导航随内容滚动高亮显示效果

    <!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=utf-8" />  
    <title>在文档页面局部出现导航随内容滚动高亮显示效果</title>  
    <style>  
    *{  
        list-style:none;  
        margin:0;  
        padding:0;  
        text-decoration:none;  
        font-family:'Microsoft YaHei';  
      
    }
    html{
        height: 100%;
        overflow: hidden;
    } 
    .x_mg_xlcd #text {
        width: 70%;
        padding: 0!important;
        height: 700px;
        overflow: auto;
    } 
    .x_mg_xlcd li{  
        width:100px;  
        height:50px;  
        line-height:50px;  
        border-right:2px solid #eee;  
        text-align:center;  
        cursor:pointer;  
    }  
       
    .x_mg_xlcd .gd_nav .cur{  
        font-size: 22px;  
    }  
    .x_mg_xlcd .gd_nav{  
        position:fixed;  
        top:0;  
        right:0;
    }  
    .x_mg_xlcd #text{width: 70%;padding:0!important;}
    .x_mg_xlcd #text .box{
        width: 100%;height: 500px;background: pink;border-bottom: 3px solid blue}  
    </style>  
    </head>  
    <body>  
     
    <div class="x_mg_xlcd">
        <div class="gd_nav" id="nav-container">  
            <ul id="nav-box"> 
                <li class="cur"><a href="#x_a">A</a></li>  
                <li><a href="#x_b">B</a></li>  
                <li><a href="#x_c">C</a></li>  
                <li><a href="#x_d">D</a></li>  
                <li><a href="#x_e">E</a></li>  
            </ul>  
        </div>  
        <div id="text">  
            <div id="x_a" class="box">A</div>  
            <div id="x_b" class="box">B</div>  
            <div id="x_c" class="box" >C</div>   
            <div id="x_d" class="box">D</div>   
            <div id="x_e" class="box">E</div>   
        </div>
    </div>  
    
      
    <script>  
    var navContainer = document.getElementById("nav-container");  
    var navBox = document.getElementById("nav-box");  
    var text = document.getElementById("text");  
    var navBoxChild = navBox.children;  
    var textChild = text.children;  
    var num = navContainer.offsetTop;  
    var a = navContainer.offsetHeight;  
    document.getElementById("text").onmousewheel = function(event) {
        var scrollTop = document.getElementById("text").scrollTop;  
        if(scrollTop >= num){  
            navContainer.className = "gd_nav";  
            text.style.paddingTop = a +"px";  
        }else{  
            navContainer.className = "gd_nav";  
            text.style.paddingTop = "";  
        }  
        //当导航与相应文档接触的时候自动切换  
        //method1  
        for(var i=0;i<navBoxChild.length;i++){  
            if( scrollTop + a >= textChild[i].offsetTop){  
                for(var j=0;j<navBoxChild.length;j++){  
                    navBoxChild[j].className = "";  
                }  
                navBoxChild[i].className = "cur";  
           }  
        }  
    };  
    for(var i=0;i<navBoxChild.length;i++){  
        var interval;  
        navBoxChild[i].index = i;  
        navBoxChild[i].onclick = function(){  
            var self = this;  
            clearInterval(interval);  
            interval = setInterval(function(){  
                if(document.getElementById("text").scrollTop + a<=textChild[self.index].offsetTop){  
                    document.getElementById("text").scrollTop += 40;  
                    if(document.getElementById("text").scrollTop + a>=textChild[self.index].offsetTop){  
                        document.getElementById("text").scrollTop = textChild[self.index].offsetTop-a;  
                        clearInterval(interval);  
                    }  
                }else{  
                    document.getElementById("text").scrollTop /= 1.1;  
                    if(document.getElementById("text").scrollTop + a<=textChild[self.index].offsetTop){  
                        document.getElementById("text").scrollTop = textChild[self.index].offsetTop-a;  
                        clearInterval(interval);  
                    }  
                }  
            },40);  
        };  
    }  
    </script>    
    </body>  
    </html>  
  • 相关阅读:
    NOI2013 树的计数
    拆系数FFT学习笔记
    HAOI2017 八纵八横——线段树分治+线性基
    BJOI2018链上二次求和——线段树
    [bzoj3514]Codechef MARCH14 GERALD07加强版——lct+主席树
    KD-Tree 学习笔记
    SDOI2010 捉迷藏 —— KD-Tree
    HAOI2018染色——容斥
    gitignore 不起作用的解决办法
    reids学习教程
  • 原文地址:https://www.cnblogs.com/fkcqwq/p/7206077.html
Copyright © 2011-2022 走看看