Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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 如何跳过此js上的页边距顶部?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何跳过此js上的页边距顶部?

Javascript 如何跳过此js上的页边距顶部?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我一直在试图弄明白这一点;如何使.float div在向下滚动时不从顶部保留边距?我想它是固定在窗口的顶部,而滚动。如果你去掉顶部的入口,它就可以了。但是如何在不删除.top条目的情况下修复它 var$scrollingDiv=$(“.float div”); $(窗口)。滚动(函数(){ var y=$(this.scrollTop(), $postEntry=$('.postEntry'), maxY=$postEntry.offset().top+$postEntry.height(),

我一直在试图弄明白这一点;如何使.float div在向下滚动时不从顶部保留边距?我想它是固定在窗口的顶部,而滚动。如果你去掉顶部的入口,它就可以了。但是如何在不删除.top条目的情况下修复它

var$scrollingDiv=$(“.float div”);
$(窗口)。滚动(函数(){
var y=$(this.scrollTop(),
$postEntry=$('.postEntry'),
maxY=$postEntry.offset().top+$postEntry.height(),
scrollHeight=$scrollingDiv.height();
如果(y<最大滚动高度){
$scrollingDiv
.停止
.animate({“marginTop”:($(window.scrollTop())+“px”},“slow”);
}    
});

top:0
添加到float div类将很容易解决此问题

.float-div {
position: absolute;
background: red;
top: 0;
}

更新的小提琴:

这是我的新答案,这是一把小提琴 希望这就是你想要的:)


@moe谢谢你的重播moe!第一个解决方案是将.float div置于顶部,但我希望它保持在“顶部条目”下。你的最后一个解决方案是伟大的,但我希望它仍然有动画的滚动。谢谢@大卫:我真的不明白这里有什么问题。你能更好地解释一下吗?问题是当你向下滚动页面时.float div有一个页边空白。我希望当您滚动到/通过.top条目时,它会固定在窗口顶部。如果你不明白我的意思,就再说一遍,我会尽力解释:)现在清楚了。但答案很简单,您只需计算顶部条目的高度并将其与当前滚动位置进行比较,如果滚动位置超过jquery css>top:0设置的值,则效果很好,但现在的问题是.float div在.sep条目上滚动。我希望它停在.sep条目的正上方。因为如果.float div的高度为示例600px,则可以永远向下滚动!尝试在.float div上设置300px的高度并向下滚动。那你明白我的意思了!谢谢你的帮助!所以你想要那个。float div只在。post entry中滚动?这正是我想要的!非常感谢,你让我开心
.float-div {
position: absolute;
background: red;
top: 0;
}
var $scrollingDiv = $(".float-div");


$(window).scroll(function(){  


var y = $(this).scrollTop(),
    $topEntry = $('.top-entry').height();
if( y > $topEntry){
    $scrollingDiv
    .stop()
    .animate({"margin-top": y + "px"}, "slow" );        
} 
else 
    $scrollingDiv
    .stop()
    .animate({"margin-top": "80px"}, "slow" ); 
});