加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

transform 之后的坑 scale rotate draggable

发布时间:2020-12-15 03:28:33 所属栏目:C语言 来源:网络整理
导读:1 scale之后 1-1元素宽高 获取元素真实宽高 原生写法 var rect = obj.getBoundingClientRect(); var pw = rect.width;var ph = rect.height; 1-2 元素的位置 此时通过jquery position获取到的left top值要乘以scale的倍数 或者 var rect = obj.getBoundingCl

1 scale之后

1-1元素宽高

获取元素真实宽高
原生写法

var rect = obj.getBoundingClientRect(); 
var pw = rect.width;
var ph = rect.height;

1-2

元素的位置
此时通过jquery position获取到的left top值要乘以scale的倍数
或者

var rect = obj.getBoundingClientRect(); 
var left = rect.left;
var top = rect.top;

1-3 因为transform scale之后 jquery ui 的 draggable方法失灵

解决方案:

1-4

transform scale 之后要translate
translate的大小为

var translateX = elem.outerWidth() * (scaleRatio - 1) / 2;
var translateY = elem.outerHeight() * (scaleRatio - 1) / 2;

1-5 translate 之后要设置margin值

  "margin-left": -translateX + "px"
  "margin-top": -translateY + "px"

1-6 有一个打包的问题

网上看很多人遇到了 transform : scale(2,2) translate(200px,200px); 在css中这样写之后,使用webpack打包后说是scale不再生效,建议使用transform :martix(2,2,200,200)

至此,踩坑结束。

2 rotate 之后
你就要运用数学方法了
使用外切矩形的宽高作为宽高计算

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读