Javascript 使用JQuery将滚动条设置为@bottom时使DIV 100%宽度
当滚动条位于底部时,我试图使宽度DIV增长到100%, 当滚动条位于页面顶部时,收缩到0% 我试着这样做:Javascript 使用JQuery将滚动条设置为@bottom时使DIV 100%宽度,javascript,jquery,Javascript,Jquery,当滚动条位于底部时,我试图使宽度DIV增长到100%, 当滚动条位于页面顶部时,收缩到0% 我试着这样做: $(document).ready(function () { var myWidth = $(window).width(); var res = myWidth / 100; var myHeight = $(document).height(); var myScreen = $(window).height();
$(document).ready(function () {
var myWidth = $(window).width();
var res = myWidth / 100;
var myHeight = $(document).height();
var myScreen = $(window).height();
$(window).scroll(function () {
var scrolling = $(window).scrollTop();
var myPrecentage = (scrolling + myScreen) / (myHeight );
console.log(myPrecentage);
$('#com1').css("width", ((myPrecentage) * 100) + "%");
});
});
我遇到了一个问题,当我尝试使用scrollTop时,它不会计算屏幕高度,所以我总是在scrollTop为0时启动,大约为宽度的20%
你有更好的解决方法吗?我可能还没有完全理解你想做什么,但听起来你想根据你在卷轴中的位置计算0到100%之间的百分比。(可能需要将垂直动作转换为水平图形表示。) 您的代码可以正常工作,只需稍作调整。现在,您正在基于以下内容计算%
var myPrecentage=(滚动+myScreen)/(myHeight)代码>
你想要的是:
var myPrecentage=滚动/(myHeight-myScreen)代码>
这与:
$(window.scrollTop()/($(document.height()-$(window.height())代码>
(我应该补充一点,我使用的是Chrome——不同浏览器的行为可能有所不同。)我认为您当前的问题是,您总是从视图窗口的大小开始。因此,除非视图为0,否则始终以<零的数字开始。只有当滚动视图超过myScreen大小时,才需要添加滚动和myScreen
var myPrecentage;
如果((滚动-myScreen)
您当前的代码发生了什么变化?你说屏幕高度计算不正确,你得到了什么值,你期望得到什么?给定不正确的屏幕大小值,其余代码是否正常工作?您是否正在寻找不同的实现?你的逻辑看起来很合理,我很好奇你遇到了什么问题。例如,我的页面的最高点是:2133px,而我的scrollTop底部是1789px。我短了344px,这基本上就是我的屏幕高度。所以当我开始滚动时,我的“var precentage”是0.16736990154711673 px,因为它增加了屏幕高度。。。当它位于顶部时,我需要以某种方式将其设为0,当它位于底部时,我需要(渐进地)添加它。。。
var myPrecentage;
if((scrolling - myScreen) < myScreen){
myPrecentage = (scrolling) / (myHeight );
} else {
myPrecentage = (scrolling + myScreen) / (myHeight );
}