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

使用javascript获取多个图像的位置,javascript,Javascript,我想要实现的是,当用户停止滚动时,我希望将最靠近中心的图像定位到中心。我想,这将涉及到我运行一系列的if语句来确定哪个图像离中心最近。我将能够做到这一点,但在此之前,我得到的补偿是错误的。我正在努力让我的头周围得到的图像定位的我知道这有点与偏移,但我需要一些指导,因为偏移值是不正确的。看看这个链接,看看其中的函数setupHscroll,看看getImageOffset,我想这就是问题所在 function getImageOffset() { var arr = new Array;

我想要实现的是,当用户停止滚动时,我希望将最靠近中心的图像定位到中心。我想,这将涉及到我运行一系列的
if
语句来确定哪个图像离中心最近。我将能够做到这一点,但在此之前,我得到的补偿是错误的。我正在努力让我的头周围得到的图像定位的我知道这有点与偏移,但我需要一些指导,因为偏移值是不正确的。看看这个链接,看看其中的函数
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;
}
函数getImageOffset(){ var-arr=新数组; var images=document.getElementById(“容器”).getElementsByTagName(“img”); 对于(变量i=0,l=images.length;i 请帮助,如果可能的话,请帮助我理解。谢谢,我是否使用了正确的方法来获取图像的位置。

请参见

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

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


否则,请尝试以下操作:

在您的简单示例中,您可以执行以下操作:对于每个图像(或者更好的是,每个包含它的
),将其
偏移宽度
增加一半。然后取
#container
offsetWidth
并将其除以2,然后减去其
marginLeft
样式属性的量


找到其值与此值最接近的图像,您就完成了操作。

更不用说只需获得BoundingClientRect并减去它和真正的jQuery就可以了!!为什么?但是谢谢。为什么Jquery??我可以给你100个理由