2 una chou una_chou 于 2017.09.13 12:53 提问

图片使用transform的scale放大缩小图片,怎么获取到原始的坐标点

最开始在图片上画了一个点,点的相对位置是相对于图片定位的。

使用css3的transform的scale属性,使图片放大后,再次在相同的位置上画点,此时,点的位置会偏移,我调试了一下,发现,放大后,点的相对位置的left和top值,和没有放大的时候的值是一样的,这样的话,我怎么能在图片放大后,获取到图片没有放大的时候的left和top值,并把他们赋值给现在放大之后的点的相对位置的值?

2个回答

m0_38082783
m0_38082783   2017.09.13 17:06
已采纳

1,放大的方向,假如你是以图片的几何中心点为基准放大
首先你要对定位的点进行判断,在图片基准点的四个象限哪一个象限,这样你放大图片的时候,
然后找到放大倍数,求出top和left要改变的大小
最后根据象限判断top和left改变值的符号(-,+),再将原来的值和改变的大小相加

还有就是在图片的四个角为基准点放大缩小,这个就好判断的多。

una_chou
una_chou 对的,因为是transform的scale属性,默认就是以图片中心为基准放大的,所以确实是需要判断四个象限,我在图片放大后,点了点,因为偏移,所以我调试了一下获取到正确的值就是没有缩放时候的top和left值,有没有什么办法能在图片放大后获取到图片原来的位置值呢? 或者用你的方法,请原谅我太笨,我也可以想到,但是我做不出来,你能好心的给个代码不,万分感谢。
2 个月之前 回复
hmszhmsz
hmszhmsz   2017.09.13 17:43

你是想让画的点跟着图片动吧?原来的坐标x,y乘以scale的倍数

una_chou
una_chou 对,是想要图片跟着动,但是你这样不对,我试了一下,因为点是绝对定位的,所以只需要写top值和left值,缩放后的话,我再点点,点的left和top值和之前没有缩放的点的值是一样的,所以需要获取之前的值,有没有什么办法能在图片放大后,仍能获取到之前的值呢?
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片