Javascript 使用JQuery将滚动条设置为@bottom时使DIV 100%宽度

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();

当滚动条位于底部时,我试图使宽度DIV增长到100%, 当滚动条位于页面顶部时,收缩到0%

我试着这样做:

$(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 );
}