Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在页面顶部粘贴div_Javascript_Html_Css - Fatal编程技术网

Javascript 如何在页面顶部粘贴div

Javascript 如何在页面顶部粘贴div,javascript,html,css,Javascript,Html,Css,我只想把div贴在页面的顶部 如果有人滚动页面,则绿色div stickdiv应自动粘贴在顶部 var left = document.getElementsByClassName("stickdiv"); for( var i = 0;i<left.length;i++){ var stop = (left[0].offsetTop); window.onscroll = function (e) { var scrollTop = (window.pageYOffset !== u

我只想把div贴在页面的顶部

如果有人滚动页面,则绿色div stickdiv应自动粘贴在顶部

var left = document.getElementsByClassName("stickdiv");

for( var i = 0;i<left.length;i++){
var stop = (left[0].offsetTop);

window.onscroll = function (e) {
var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
    if (scrollTop >= stop) {
     left.className += " stick"; //adding a class name
    } else {
        className = '';
    }

}
}
为什么在div上添加stick类不起作用-


我只想把div像黄色的div一样放在上面-

您已经循环到了左侧项目的数组中,但是在尝试将类名添加到元素时忘记了引用数组索引

var left=document.getElementsByClassNamestickdiv; 对于var i=0;i=停止{ //按索引获取数组项 左[0]。类列表。添加'stick';//添加类名 }否则{ //按索引获取数组项 左[0]。类列表。删除“棍子”; } } } 斯蒂克迪夫先生{ 高度:50vh!重要; 宽度:100vh!重要; 背景色:绿色!重要; } .棍子{ 位置:固定; 排名:0; 差额:0 } 对{ 浮动:对; 宽度:100px; 高度:1000px; 背景:红色; } 戴斯先生{ 高度:300px; 宽度:100%; 背景色:000; }
您已循环到左侧项的数组中,但在尝试将类名添加到元素时忘记引用数组索引

var left=document.getElementsByClassNamestickdiv; 对于var i=0;i=停止{ //按索引获取数组项 左[0]。类列表。添加'stick';//添加类名 }否则{ //按索引获取数组项 左[0]。类列表。删除“棍子”; } } } 斯蒂克迪夫先生{ 高度:50vh!重要; 宽度:100vh!重要; 背景色:绿色!重要; } .棍子{ 位置:固定; 排名:0; 差额:0 } 对{ 浮动:对; 宽度:100px; 高度:1000px; 背景:红色; } 戴斯先生{ 高度:300px; 宽度:100%; 背景色:000; }
根据您需要支持的浏览器,您不一定需要JS

.sticky {
    position: sticky;
    left: 0;
    top: 0;
    width: 100%;
}
代码笔:


浏览器对position sticky的支持:

根据需要支持的浏览器,不一定需要JS

.sticky {
    position: sticky;
    left: 0;
    top: 0;
    width: 100%;
}
代码笔:


浏览器对position sticky的支持:

@未来的用户不必离开网站去查看一个工作示例,这对他们很有好处。这就是为什么我将您的JSFIDLE转换为一个堆栈片段。我想指出的是,对于OP来说,for循环是没有必要的。@hungerstar同意。键入注释时添加的代码段=我不知道如何帮助未来的游客。如果JSFIDLE崩溃或失效,您仍然有一个带有堆栈片段的工作示例。堆栈片段清晰地将HTML、CSS和JS划分为自己的区域,以确保可读性。如果有什么问题,请指出主要的更改,并在后面添加一个折叠的堆栈片段。@Anjali如果这个答案解决了您的问题,请务必接受答案=@似乎未来的用户不必离开网站去看一个有效的例子会受益匪浅。这就是为什么我将您的JSFIDLE转换为一个堆栈片段。我想指出的是,对于OP来说,for循环是没有必要的。@hungerstar同意。键入注释时添加的代码段=我不知道如何帮助未来的游客。如果JSFIDLE崩溃或失效,您仍然有一个带有堆栈片段的工作示例。堆栈片段清晰地将HTML、CSS和JS划分为自己的区域,以确保可读性。如果有什么问题,请指出主要的更改,并在后面添加一个折叠的堆栈片段。@Anjali如果这个答案解决了您的问题,请务必接受答案=