问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

js或者jquery实现div不随滚动条滚动

发布网友 发布时间:2022-04-20 21:23

我来回答

4个回答

热心网友 时间:2022-04-20 22:53

试试这样的吧
<body>
<div id="box" style="height:2000px;width:3000px;">
<div id="div1" style="width:500px;height:500px;background:green;position:absolute;">
    <div id="div2" style="width:200px;height:100px;background:lightblue;position:fixed;">里面的div</div>
</div>
</div>
</body>
<script type="text/javascript">
var sTop = 0;            //初始卷起的高度
var sLeft = 0;            //初始卷起的宽度
var p_div = document.getElementById("div1");        //父div
var max_x = p_div.offsetLeft+p_div.offsetWidth;        //父div的右边界
var max_y = p_div.offsetTop+p_div.offsetHeight;        //父div的下边界
window.onscroll = function(){
    var c_div = document.getElementById("div2");    //子div
    var s_top = document.documentElement.scrollTop || document.body.scrollTop;            //卷起的高度
    var s_left = document.documentElement.scrollLeft || document.body.scrollLeft;        //卷起的宽度
    if(s_top!=sTop){        //纵向滚动,当前卷起的高度和原卷起的高度不一致
        sTop = s_top;        
        c_y = s_top+p_div.offsetTop+c_div.offsetHeight;            //子div当前的下边界坐标
        if(c_y>=max_y){                //如果下边界超过父div下边界
            c_div.style.position = "relative";
            c_div.style.top = (p_div.offsetHeight-c_div.offsetHeight)+"px";
            c_div.style.left = s_left+"px";
        }else{
            c_div.style.position = "fixed";
            c_div.style.top = "";
            c_div.style.left = "";
        }
    }
    if(s_left!=sLeft){        //纵向滚动
        sLeft = s_left;
        c_x = s_left+p_div.offsetLeft+c_div.offsetWidth;
        if(c_x>=max_x){
            c_div.style.position = "relative";
            c_div.style.left = (p_div.offsetWidth-c_div.offsetWidth)+"px";
            c_div.style.top = s_top+"px";
        }else{
            c_div.style.position = "fixed";
            c_div.style.left = "";
            c_div.style.top = "";
        }
    }
}
</script>

热心网友 时间:2022-04-21 00:11

先了解了 css 的 position:fixed; 属性


了解 jquery

如何获得容器的位置

如何获得滚动条的位置

使用$(window).scroll(function(){

})  每次页面滚动的时候都会触发它


然后看你的了

热心网友 时间:2022-04-21 01:45

我感觉整体思路应该是:首先你要是想让div不随滚动条滚动,肯定是有一个position:fixed
然后就是绑定onscroll事件,检测什么时候达到你要求的临界值,改变div
的position:fixed就可以了。至于你的临界值是个什么情况,你可以在具体
百度一下搜一搜了。

热心网友 时间:2022-04-21 03:37

css就可以了。
#div1{
height:300px;
overflow-y:auto;
}

#div2{
height:150px;
position:fixed;

}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
提成点数怎么算公式 Huamei/华美每日粗粮粗纤维饼-适用对象 0pp01107格式化后成白屏且不能开机怎么办 五邑大学是市属还是省属 五邑大学校区有几个 窝瓜焖荷包蛋怎么做? 达科塔·芬妮简要生平 湖北自动冷库多少钱 虹口区海洛斯精密空调 ...回事联想电脑为什么一接通电源自己就自动开机了 “错换人生28年案”,究竟是错换还是偷换,母亲真舍得换掉自己孩子吗? 都以为吴京大儿子“吴所谓”够随便,其实二儿子名字够你笑一年,叫什么? 下个月出生的男宝宝取什么名字好 刚出生的宝宝屁股为何会有青痕?该如何给宝宝去除? 央视著名主持邱园园,为了丈夫放弃治疗,孩子出生后她病逝,丈夫怎样了? 父亲娃彭,母亲姓朱怎么起名呢? 爸爸姓李妈妈姓葛取什么小孩儿取什么名字好? 我老公天天要做爱,七年了,我好烦该怎么办? 工作四年的IT女转行可以做什么工作? 做IT行业的技术工作,以后转行做什么好呢? 我刚来快手,然后关注别人需要输入一串验证码我想问一下大家这是怎么回事 - 信息提示 我刚结婚的老公,天天要,天天要,我受不了了,想逃回娘家去。受不了啊!怎么办? 男朋友天天要,这是为什么呢 男友天天要,怎么办。。 女友天天都要正常吗 寂寞丶依靠丶咆哮丶欢畅丶充盈丶茂盛丶滋润丶裸露的近义词 男朋友天天要怎么回事 所向披靡、辗转、厉害、羡慕、富裕的近义词 请问充足的近义词是那一个 柿子和可以和螃蟹一起吃吗 重庆市阿里巴巴小额贷款有限公司是做什么的 重庆小额贷款公司利息是怎么算的,是月利 清华同方笔记本浏览器找不到服务器怎么办\? 我想把我的摩托车手把换成带熄火开关的那种手把,但我不知道怎么改线路,我的车是铃木锐爽EN—2F 我电脑打开浏览器显示找不到服务器怎么回事 戚薇是一个什么样的女人呢?(看到她照了很多大尺度性感的照片) 男生怎么用声音撒娇 摩托车左手把开关组合怎么拆卸 华为8828手机自动关机 就开不了机怎么回事 摩托车启动继电器坏了怎么样不换也能打火 华为T8828手机开机黑屏,但还亮着就是没反应 摩托车启动开关怎么三条线? 索尼x9000C怎么联接功放 华为手机T8828为什么玩不了跑酷. 网游之类的游戏 华为8828的手机锁屏了怎么解锁 五羊本田的摩托车换了起动开关和继电器一起动起动开关就冒烟是怎么了 请问如何关掉主机的扬声器,而只是保留耳机的声音啊。 Sonys370与普通功放如何连接 如何向男生撒娇
  • 焦点

最新推荐

猜你喜欢

热门推荐