jQuery在旋转后获取图像位置

时间:2013-11-19 22:41:13

标签: jquery rotation position delay

我有一个javascript函数可以像旋转木马那样旋转一组图像,因此每个更新间隔为每个图像设置一个绝对位置。

这很好用。

单击图像时,它会显示在前面。这可能需要2-3秒,具体取决于图像的数量。

完成旋转之后,想要确定前图像的位置(css - 左侧和顶部属性值。

这里的问题是当我这样做时

    $('.rotatableImage').click(function() {
        $(this).parent().append("<div style='position: absolute; left: " + $(this).css('left') + "; top: " + $(this).css('top') + ";'>Text</div>");
    });  

在完成旋转之前,我点击了左边和上边的直接位置。

有没有办法解决这个问题而无需使用jquery或javascript进行修改?

我也尝试了一些SetTimeout但是它也会立即绑定点击并且我得到了错误的值。

1 个答案:

答案 0 :(得分:0)

旋转代码在这里@john Smith item是var Item = function(img,opt)cotaint img object attributes

var style;
var px = 'px';  
var context = this;

for (var i = 0; i<itemsLen ;i++)
{
   item = items[i];

   sinVal = funcSin(radians);

   scale = ((sinVal+1) * smallRange) + minScale;

   x = this.xCentre + (( (funcCos(radians) * this.xRadius) - (item.orgWidth*0.5)) * scale);
   y = this.yCentre + (( (sinVal * this.yRadius)  ) * scale);       

   if (item.imageOK)
   {
       var  img = item.image;
       w = img.width = item.orgWidth * scale;                   
       h = img.height = item.orgHeight * scale;


       img.style.left = x + px ;
       img.style.top = y + px;
       img.style.zIndex = "" + (scale *100)>>0;                                     
   }
   radians += spacing;
}

 this.innerWrapper.style.display = 'block';