Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 如何防止在列表末尾20像素内滚动消息?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何防止在列表末尾20像素内滚动消息?

Javascript 如何防止在列表末尾20像素内滚动消息?,javascript,jquery,html,Javascript,Jquery,Html,我这里有一个滚动功能。我想知道是否有可能在最后20个像素内阻止向上滚动消息?因此,当我从末尾向上滚动时,消息仅显示在末尾20像素区域的上方 jQuery(文档).ready(函数($){ 设lastScrollTop=0; $(“#包装器”).scroll(函数(){ 设st=$(this.scrollTop(); 如果(stheight-20 { 控制台日志(“向上滚动,到末端的间隙为:”,高度st); } lastScrollTop=st; }); }); #包装器{ 高度:200px;

我这里有一个滚动功能。我想知道是否有可能在最后20个像素内阻止向上滚动消息?因此,当我从末尾向上滚动时,消息仅显示在末尾20像素区域的上方

jQuery(文档).ready(函数($){
设lastScrollTop=0;
$(“#包装器”).scroll(函数(){
设st=$(this.scrollTop();
如果(st
#包装器{
高度:200px;
溢出y:滚动;
}
#试验{
背景:绿色;
高度:1000px;
}

更新 检测结束时间小于20像素

请尝试以下代码:

jQuery(文档).ready(函数($){
设lastScrollTop=0;
$(“#包装器”).scroll(函数(){
设st=$(this.scrollTop();
让高度=$(此)[0]。滚动高度-$(此)。高度()
if(stheight-20)//只需添加另一个条件st>height-20
{
控制台日志(“向上滚动,到末端的间隙为:”,高度st);
}
lastScrollTop=st;
});
});
#包装器{
高度:200px;
溢出y:滚动;
}
#试验{
背景:绿色;
高度:1000px;
}

如果我理解正确,您只想看到最后20个像素以上的
console.log()
?如果是,,
您可以通过检查元素相对于最大滚动高度的位置来“计算”滚动像素,并进行比较

我增加了20px的大小,并添加了一个'else'
console.log()
,因此更容易发现这种行为;)

jQuery(文档).ready(函数($){
设lastScrollTop=0;
$(“#包装器”).scroll(函数(){
设st=$(this.scrollTop();
var remainingPixels=$(this.prop('scrollHeight')-($(this.scrollTop()+$(this.height());
如果(st100){
log(“向上滚动”,剩余像素);
}否则{
log('Muted',remainingPixels);
}
}
lastScrollTop=st;
});
});
#包装器{
高度:200px;
溢出y:滚动;
}
#试验{
背景:绿色;
高度:1000px;
}


抓住页面的内部或外部高度,减去您的滚动顶部,然后对照20^^^^^^^^^^^^^^^^检查,应该是包装纸,而不是页面。问题是结束,而不是开始。结束和20像素之间的滚动间隙似乎非常大?完美。这就是我要找的!由于一些填充物,我安全地使用了户外照明。