js实现html页面滚动条向下拉到一定的程度时,某个div就固定在顶部,向上拉时返回原位置。

阅读: 评论:0

js实现html页面滚动条向下拉到一定的程度时,某个div就固定在顶部,向上拉时返回原位置。

js实现html页面滚动条向下拉到一定的程度时,某个div就固定在顶部,向上拉时返回原位置。


实现代码


<!DOCTYPE html>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>test</title>
    <style>
        *{
            padding:0;
            margin:0;
        }
        #header{
            position: fixed;
            top: 0;
            left: 0;
            height: 30px;
            width: 100%;
            background: #555;
            opacity: 0.8;
        }
        #nav,.nav{
            height: 30px;
            width: 100%;
            background: #000;
            opacity: 0.8;
        }
        .fixed{
            position: fixed;
            top:30px;
            left:0;
        }
    </style>
</head>
<body>
<div id="header"></div>
<div style="margin-top:30px;">
<script type="text/javascript">
    //document.write('<div id="nav"></div>');
    for(var i=0;i<100;i++)
        document.write('<div>'+i+' hello world'+'</div>');
</script>
</div>
<div id="nav"></div>
<script type="text/javascript">
    for(var i=100;i<200;i++)
        document.write('<div>'+i+' hello world'+'</div>');
</script>
<script type="text/javascript">
function getElementViewTop(element){
  var actualTop = element.offsetTop;
  var current = element.offsetParent;
  while (current !== null){
        actualTop += current.offsetTop;
        current = current.offsetParent;
  }
    var elementScrollTop=0;
  if (documentpatMode == "BackCompat"){
        elementScrollTop=document.body.scrollTop;
  } else {
        elementScrollTop=document.documentElement.scrollTop; 
  }
    return actualTop;
 // return actualTop-elementScrollTop;
}
function getScroll()
{
    var top, left, width, height;
 
    if (document.documentElement && document.documentElement.scrollTop) {
        top = document.documentElement.scrollTop;
        left = document.documentElement.scrollLeft;
        width = document.documentElement.scrollWidth;
        height = document.documentElement.scrollHeight;
    } else if (document.body) {
        top = document.body.scrollTop;
        left = document.body.scrollLeft;
        width = document.body.scrollWidth;
        height = document.body.scrollHeight;
    }
    return { 'top': top, 'left': left, 'width': width, 'height': height };
}
var nav = ElementById('nav');   
var posTop = getElementViewTop(nav);
window.addEventListener('scroll',function(event){
    var scrollTop = getScroll().top;
    var output = ElementById('output');
    output.innerHTML = posTop +' '+scrollTop+' '+(posTop-scrollTop);
    if(posTop>=30 && posTop-scrollTop <= 30) 
        nav.className = 'nav fixed';
    else nav.className = 'nav';
},false);
</script>
<div id="output" style="position:fixed;width:60px;height:60px;right:100px;bottom:100px;background:#DDD">0</div>
</body>
</html>

本文发布于:2024-01-28 12:15:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064153497353.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:拉到   滚动条   程度   位置   页面
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23