javascript - 關(guān)于trasform后的坐標(biāo)計(jì)算的問題
問題描述
我在做了一個(gè)圖片在父容器內(nèi)拖動(dòng)的功能后,將父容器用transform變化了一下,旋轉(zhuǎn)啊拉伸啊什么的,之后坐標(biāo)的計(jì)算就開始紊亂了,我想問一下如果想讓他正常工作的話應(yīng)該怎么做?拖動(dòng)的代碼如下:$(function(){
var dragging = false;var iX, iY;var qX, qY;var tempid; $('.dragcontain').mousedown(function(e) { dragging = true; iX = accSub(e.clientX,this.offsetLeft); iY = accSub(e.clientY,this.offsetTop); qX = $(e.target).children().position().left; qY = $(e.target).children().position().top; console.log(qX,qY); console.log(iX,iY); this.setCapture && this.setCapture(); return false;});document.onmousemove = function(e) { if (dragging) { var e = e || window.event; console.log('sX:',e.clientX,'sY:',e.clientY); var nX = accSub(e.clientX,e.target.offsetLeft); var nY = accSub(e.clientY,e.target.offsetTop); console.log(e.clientX,e.target.offsetLeft) var mX = accSub(nX,iX); var mY = accSub(nY,iY); var oX = accAdd(qX,mX); var oY = accAdd(qY,mY); $(e.target).children().css({'left':oX + 'px', 'top':oY + 'px'}); console.log('iX:',iX,'iY:',iY); console.log('oX:',oX,'oY:',oY); console.log('nX:',nX,'nY:',nY); console.log('mX:',mX,'mY:',mY); console.log('qX:',qX,'qY:',qY); console.log(''); return false; }};$(document).mouseup(function(e) { dragging = false; e.cancelBubble = true; iX=0; iY=0;})
})
光光是將dragcontain給rotate(45deg)旋轉(zhuǎn)后就開始亂了,坐標(biāo)直接到-1000多去了
問題解答
回答1:transform旋轉(zhuǎn)縮放都是有基點(diǎn)的,transform-origin
相關(guān)文章:
1. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?2. docker內(nèi)創(chuàng)建jenkins訪問另一個(gè)容器下的服務(wù)器問題3. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!4. docker不顯示端口映射呢?5. docker-compose中volumes的問題6. golang - 用IDE看docker源碼時(shí)的小問題7. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””8. docker容器呢SSH為什么連不通呢?9. javascript - 連續(xù)點(diǎn)擊觸發(fā)mouseleave事件10. mac里的docker如何命令行開啟呢?

網(wǎng)公網(wǎng)安備