有没有办法在不使用 scrollTop 和 scrollLeft 的情况下将滚动事件应用于多个元素?我尝试在第一个元素滚动处理程序中添加 $('#element2').scroll(event) ,但它似乎不起作用。
否则,是否可以从 javascript 滚动事件中获取 jQuery 用来更新其滚动条的原始数据并手动执行此操作?
我想这样做的原因本质上是因为我找不到可靠地调整 iframe 高度到其内容的好方法(如果内容包含没有指定高度的元素,则会出现一些非常奇怪的情况)。(或者,如果有人知道这样做的可靠方法,那就太好了)
所以我有一个“视口”,可以这么说,在我的 UI 中,它包含一个 iframe,它包含一个内容页面,如果它比 iframe 大,你可以滚动它。因为我无法可靠地将 iframe 的高度设置为其内容的大小,所以我将 iframe 高度设置为此视口的高度并将其设置为垂直滚动其内容,但我不能将 iframe 的宽度设置为视口的宽度即使该内容的 html 大于该内容,它也会在内容的 css 中触发某些媒体查询。(如果我可以欺骗 iframe 使其认为它的大小与实际大小不同,那么这也可以解决问题)
我的解决方案是将 iframe 的宽度设置为其内容的宽度,然后在框架周围有一个包装器,设置为视口的宽度,这将滚动框架。这里的问题是滚动非常不稳定,因为 iframe 仅垂直滚动,而包装器仅水平滚动(对角滚动只会上下滚动,有时会突然向一侧滚动)。我想从 iframe 中捕获这些滚动事件,并将它们(或至少它的 x 组件)应用到包装器以平滑滚动。
我不能使用 scrollLeft() 执行此操作的原因是 iframe 的宽度根据其内容调整大小并且仅垂直滚动,因此 scrollLeft 始终为 0。
抱歉,解释太长了:/
提前致谢