获取滚动元素的百分比 jquery
Get percent scrolled through an element jquery
我似乎不知道如何计算这个值
在向下滚动页面时,我想制作一个 return 'scrolled through' 百分比的函数。
所以我的 0 是元素即将显示时(它位于 window 的底部,显示 0 个像素),100 是元素完全通过时(元素是window 上方显示 0 个像素)。
我需要它来使用自定义动画进行视差,制作一个在显示元素时开始的动画,并一直播放直到元素消失。
编辑:我看到的所有 Paralax 插件似乎都迫使您使用预制动画。我想为我自己的东西制作动画,所以这就是为什么我需要那个百分比值。
问完问题后,我并没有袖手旁观,继续做这件事。这似乎做了我想做的事情。
function ScrollPercent(jQEl){
var currY = $('html').scrollTop();
var elH = $(jQEl).height();
var elTop = $(jQEl).offset();
elTop = elTop.top;
var fullH = $('html').height();
var zero = elTop-elH;
var hundred = elTop+$( window ).height();
var scrollPercent = (currY-zero)/(hundred-zero);
return scrollPercent;
}
我从来没有用过jquery。不过这个功能我可以帮你。
function ScrollPercent(selector) {
var currY = document.documentElement.scrollTop;
var elH = document.querySelector(selector).offsetHeight;
var elTop = document.querySelector(selector).offsetTop;
var fullH = document.documentElement.scrollHeight;
var zero = elTop - elH;
var hundred = elTop + window.innerHeight;
var scrollPercent = (currY - zero) / (hundred - zero);
return scrollPercent;
}
我似乎不知道如何计算这个值
在向下滚动页面时,我想制作一个 return 'scrolled through' 百分比的函数。
所以我的 0 是元素即将显示时(它位于 window 的底部,显示 0 个像素),100 是元素完全通过时(元素是window 上方显示 0 个像素)。
我需要它来使用自定义动画进行视差,制作一个在显示元素时开始的动画,并一直播放直到元素消失。
编辑:我看到的所有 Paralax 插件似乎都迫使您使用预制动画。我想为我自己的东西制作动画,所以这就是为什么我需要那个百分比值。
问完问题后,我并没有袖手旁观,继续做这件事。这似乎做了我想做的事情。
function ScrollPercent(jQEl){
var currY = $('html').scrollTop();
var elH = $(jQEl).height();
var elTop = $(jQEl).offset();
elTop = elTop.top;
var fullH = $('html').height();
var zero = elTop-elH;
var hundred = elTop+$( window ).height();
var scrollPercent = (currY-zero)/(hundred-zero);
return scrollPercent;
}
我从来没有用过jquery。不过这个功能我可以帮你。
function ScrollPercent(selector) {
var currY = document.documentElement.scrollTop;
var elH = document.querySelector(selector).offsetHeight;
var elTop = document.querySelector(selector).offsetTop;
var fullH = document.documentElement.scrollHeight;
var zero = elTop - elH;
var hundred = elTop + window.innerHeight;
var scrollPercent = (currY - zero) / (hundred - zero);
return scrollPercent;
}