【问题标题】:Page not scrolling all the way to the bottom页面没有一直滚动到底部
【发布时间】:2014-06-10 23:18:26
【问题描述】:

我刚刚将此代码添加到我的页面:

<script>
$(window).on('load resize',function(){
   var maxHeight = -1;
   $('.specification-columns').each(function() {
    maxHeight = maxHeight > $(this).height() ? maxHeight : $(this).height();
   });
   $('#specification').each(function() {
    $(this).height(maxHeight+24);
   });
 });
</script>

这样我就可以获得三个 div 的高度,选择最高的一个并将包装器高度设置为该高度。由于我输入了该代码,页面不会一直滚动到底部,您可以将滚动条一直拖到底部并且它工作正常,但如果您使用鼠标滚轮滚动,它会停止大约 2/ 3 - 3/4 的下坡路。

这里是页面:http://zimxtrial.ukbigbuy.com/#specification

【问题讨论】:

  • 为我滚动到底部。
  • @JamieHutber - 您确实使用了滚轮,不是吗,而不是滚动条?您使用的是哪个浏览器,我在 chrome 中遇到了这个问题,在 IE 中我根本没有滚动,我猜这可能是由于我已经实现了 smoothWheel,我将不得不看看支持什么该功能是。

标签: javascript html scroll height


【解决方案1】:

我不认为鼠标滚轮滚动问题与这段代码特别相关。问题在于您正在使用的库之一。

我建议您使用 chrome 开发工具和 javascript 控制台来调试代码(使用断点或 console.log),但无论如何,上面的代码看起来应该只是从 3 中选择最大高度div,只要您的 html 标记是正确的,并且没有其他 div 具有相同的类/id。

顺便说一句,我建议你避免使用 Javascript 来调整 div 的大小,这个问题最好留给 CSS。这段代码很快就会变得毛茸茸的,特别是在市场上各种设备/屏幕尺寸的情况下。所以硬编码诸如“maxHeight+24”之类的东西是一个陷阱,你以后会加倍努力。


编辑:

删除设置外部 div 高度的代码。如果没有在 div 上设置高度,您的页面可以正常工作,无论如何它需要最高 div 的高度。

仔细检查后,您的滚轮问题似乎来自文档开头的 javascript 位。即在您初始化平滑滚动脚本的位置并执行以下操作:

$(document).on("scroll", onScroll);

这会在您滚动时调用 onScroll 方法,因此我假设您的问题可以缩小到该函数中发生的情况。调试。

附言也进行一些跨浏览器测试,您的页面在最新版本的 Chrome 和 Firefox 中看起来与我所看到的大不相同。

【讨论】:

  • 感谢您的建议,我会看看您的建议。我认为是该代码的原因是因为它是自收到错误以来唯一发生变化的事情。 “maxHeight+24”实际上只是为了允许应该存在的 24px 填充但是当我想到它时,将它添加到 css 中会更有意义 - 现在是星期五,我的大脑正在寻找复杂的解决方案到简单的问题。有没有办法使用 CSS 来获得与我目前所获得的效果相同的效果,如果您查看我在 OP 中链接的页面,您会看到我的目标。
  • 我的理解是你想让3列(用div表示)变成和组中最高的div一样高?
  • 另外,您说“没有其他具有相同类/ID 的 div” - 类无关紧要吗? .specification-columns 用于所有三列,ID 仅使用一次,但我有许多类用于不同的事物,例如一个类用于 15 个 div。
  • 我有 3 列,每列的大小不同,这没问题,但我需要将它们的父 div 设置为与最高的孩子相同的高度。这样做的问题是子 div 是绝对的,但父 div 是相对的,我知道父 div 只有在它们也是相对的情况下才会采用其子级的高度。
  • .specification-columns 是否在其他地方使用会很重要。您对 $('.specification-columns').each() 的调用将采用该类页面上任何 div 的最大高度,而不仅仅是您想要的 3 列。因此,如果说你在上面的某个地方有另一列分配了非常高的类,它会搞砸你对这 3 列的计算。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
  • 2011-05-14
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多