Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 获取以视口顶部和底部作为定位点的元素滚动百分比_Javascript_Jquery - Fatal编程技术网

Javascript 获取以视口顶部和底部作为定位点的元素滚动百分比

Javascript 获取以视口顶部和底部作为定位点的元素滚动百分比,javascript,jquery,Javascript,Jquery,如何获得滚动元素的百分比,但视口顶部为0%,底部为100%。 此代码笔向下滚动绿色.wrapper元素,设置基于视口顶部的百分比。我希望当视口的底部(而不是顶部)通过.wrapper的底部点(保留视口的顶部作为起点)时,它是100% $(文档).ready(函数(){ 变量el=$(“.wrapper”); var wrapperHeight=el.outerHeight(); var wrapperTop=el.offset().top; var wrapperBottom=el.offse

如何获得滚动元素的百分比,但视口顶部为0%,底部为100%。 此代码笔向下滚动绿色.wrapper元素,设置基于视口顶部的百分比。我希望当视口的底部(而不是顶部)通过.wrapper的底部点(保留视口的顶部作为起点)时,它是100%

$(文档).ready(函数(){
变量el=$(“.wrapper”);
var wrapperHeight=el.outerHeight();
var wrapperTop=el.offset().top;
var wrapperBottom=el.offset().top+wrapperHeight;
$(窗口).bind('scroll',function(){
var scrolled=$(窗口).scrollTop();
if(滚动>包装器顶部&滚动<包装器底部){
var percentageScrolled=((滚动-包装顶部)/包装高度)*100;
$(“.scrolled”).text(parseInt(percentageScrolled));
}
});
});
.page{
高度:10000px;
背景:红色;
填充顶部:1000px;
}
.包装纸{
高度:1500px;
背景:绿色;
}
.滚动{
位置:固定;
顶部:10px;
右:30px;
z指数:1;
}


这看起来像是一份

有了它,您可以在一个或多个元素(基于选择器)可见或离开页面时触发回调函数

首先,必须创建观察者:

var options = {
  rootMargin: '0px',
  threshold: 1.0
}

var observer = new IntersectionObserver(callback, options);
然后设置一个应该监视的目标:

var target = document.querySelector('.wrapper');
observer.observe(target);
之后,您只需定义进入(或离开)视口的每个元素应发生的情况:

var callback = function(entries, observer) { 
  entries.forEach(entry => {
    // Each entry describes an intersection change for one observed
    // target element:
  });
};

这看起来像是一份工作

有了它,您可以在一个或多个元素(基于选择器)可见或离开页面时触发回调函数

首先,必须创建观察者:

var options = {
  rootMargin: '0px',
  threshold: 1.0
}

var observer = new IntersectionObserver(callback, options);
然后设置一个应该监视的目标:

var target = document.querySelector('.wrapper');
observer.observe(target);
之后,您只需定义进入(或离开)视口的每个元素应发生的情况:

var callback = function(entries, observer) { 
  entries.forEach(entry => {
    // Each entry describes an intersection change for one observed
    // target element:
  });
};

谢谢你的建议。不幸的是,我需要这个百分比来进行计算。你可以从十字路口观测者那里得到这个百分比。所以没有理由不使用它。谢谢你的建议。不幸的是,我需要这个百分比来进行计算。你可以从十字路口观测者那里得到这个百分比。所以没有理由不使用它。