javascript - 關(guān)于trasform后的坐標(biāo)計(jì)算的問(wèn)題
問(wèn)題描述
我在做了一個(gè)圖片在父容器內(nèi)拖動(dòng)的功能后,將父容器用transform變化了一下,旋轉(zhuǎn)啊拉伸啊什么的,之后坐標(biāo)的計(jì)算就開(kāi)始紊亂了,我想問(wèn)一下如果想讓他正常工作的話應(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)后就開(kāi)始亂了,坐標(biāo)直接到-1000多去了
問(wèn)題解答
回答1:transform旋轉(zhuǎn)縮放都是有基點(diǎn)的,transform-origin
相關(guān)文章:
1. mysql日期類型默認(rèn)值’0000-00-00’ 報(bào)錯(cuò)2. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過(guò)段時(shí)間會(huì)消失是什么情況?3. mysql replace 死鎖4. mysql - C#連接數(shù)據(jù)庫(kù)時(shí)一直這一句出問(wèn)題int i = cmd.ExecuteNonQuery();5. MYSQL 根據(jù)兩個(gè)字段值查詢 但兩個(gè)值的位置可能是互換的,這個(gè)怎么查?6. extra沒(méi)有加載出來(lái)7. android - 安卓做前端,PHP做后臺(tái)服務(wù)器 有什么需要注意的?8. javascript - 微信網(wǎng)頁(yè)開(kāi)發(fā)從菜單進(jìn)入頁(yè)面后,按返回鍵沒(méi)有關(guān)閉瀏覽器而是刷新當(dāng)前頁(yè)面,求解決?9. php傳對(duì)應(yīng)的id值為什么傳不了啊有木有大神會(huì)的看我下方截圖10. mysql - ubuntu開(kāi)啟3306端口失敗,有什么辦法可以解決?
