0

我有一个固定宽度/高度的 DIV,是“溢出:隐藏”并包含很多 IMG,它们是“显示:内联”和“浮动:左”

显然,只有前几张图像是“可见的”——其余的消失在一个非常非常宽的 DIV 的“隐藏”区域中。

如果这是一个带有非内联元素的可滚动 DIV,我可以轻松实现一个系统,让 IMG 在它们变为“可见”之前不加载它们的“src”——但我找不到确定“真实”的方法inline'd 和 float:left'd 图像的位置 - 例如,无法判断它们是否在 DIV 的“可见”部分?

有任何想法吗?Offset 和 CSS Left/Top 之类的东西都是 0(显然)?

ps 来加强这个问题 - 我想要做的(在 jQuery 中,因为我认为!)是

$("#container img").each(function() {
  if ($(this).isinthevisiblepartofthecontainer) ...
});

pps 我突然想到我可以“计算宽度”——假设我可以按顺序获取元素——所以像这样

var width = $("#container").width();
var sofar = 0;
var imgs = $("#container img");
var idx = 0;
while (sofar < width) {
  var img = $(imgs[idx]);
  img.dowhatsoeverIwanthere
  sofar += img.width();
  idx++;
}

它很粗糙,但假设它以正确的顺序返回元素(并且似乎)它会起作用......

4

2 回答 2

0

你试过绝对位置吗?我的意思是,据我所知,您想在 x 中滚动?

因为您可以通过 jQuery 告诉左侧大于 x 且小于 x - x 的图像在达到该条件之前不显示...

如果使用 div scroll-x 或 jQuery .css()、.fadeIn()、.hide() 等,我不清楚你想如何滚动

我认为 Rajat 评论了你需要什么

于 2012-09-23T11:39:44.637 回答
0

经过大量调查,我得出的结论是,您无法通过它们可能具有的任何属性确定 FLOAT:ed 元素是否在滚动 div 的可见部分内。

您可以通过将它们的宽度/高度相加来计算它们的位置,然后查看此“位置”是否在可见区域内,但没有其他方法可以确定它们的“可见性”。

并不完全令人惊讶——它们是出于某种原因动态布局的——而且计算它们的位置并不难......

于 2012-10-02T20:03:28.817 回答