如何使用3D变换获得元素的未转换位置/大小



我正在创建类似于3D地图的东西,在使用CSS3 3D变换的同时,我需要能够放大某些元素。我已经解决了,如果您在任何旋转之前应用翻译,就可以简单地使用未转换的2D坐标来执行此操作。

我现在的问题是获得元素的未转换的2D属性,以便我可以将"相机"移动以聚焦并放大上述元素。

我尝试在应用3D变换之前先存储原始属性,但这是不可靠且骇客的,因为它没有考虑到视口更改,有时会给出奇数数字,好像父装容器较小:<<<<

var contentChildren = $("#content3d").children().each(function(index, element){
    $(this).attr("flatleft", $(this).position().left);
    $(this).attr("flattop", $(this).position().top);
    $(this).attr("flatwidth", $(this).width());
    $(this).attr("flatheight", $(this).height());
});

那么,如何获得3D转换的元素的未转换属性?

您可以尝试使用jQuery中的.DATA函数,据我所知,它非常直接且相当可靠。

$(this).data("flatleft", $(this).position().left);

参考:http://api.jquery.com/data/

最新更新