使用javascript获取多个图像的位置

时间:2012-08-21 23:23:19

标签: javascript

我想要实现的是当用户停止滚动时我想将最近的图像定位到中心到中心。我认为,这将涉及我运行一系列if语句来确定哪个图像最接近中心。我将能够做到这一点,但在此之前,我得到的补偿是错误的。我正在努力让我的头脑得到图像定位我知道它与偏移有关但我需要一些指导因为偏移值不正确。请查看此链接http://bit.ly/PDz2JD并查看setupHscroll中的getImageOffset函数。我认为这就是问题所在。

function getImageOffset() {
   var arr = new Array;
   var images = document.getElementById("container").getElementsByTagName("img");
   for (var i = 0, l = images.length; i < l; i++) {
       arr.push(images[i].offsetLeft);
       console.log(images[i].offsetLeft - rect.left);
   }
   return arr;
}

请帮忙,如有可能帮助我理解。谢谢,我使用正确的东西来获取图像的位置。

2 个答案:

答案 0 :(得分:0)

请参阅http://www.w3.org/TR/cssom-view/#offset-attributes

offsetLeft将检索相对于offsetParent的偏移量。

如果可以,我建议为$.offset()功能引入jQuery。

否则,请尝试:http://www.quirksmode.org/js/findpos.html

答案 1 :(得分:0)

在您的简单情况下,您可以执行以下操作:对于每个图像(或更好,每个<div>包含它),取其offsetLeft并添加其offsetWidth的一半。然后取offsetWidth #container并将其除以2,然后减去其marginLeft样式属性的数量。

找到最接近这个值的图像,然后就完成了它。